作成日: 2022/04/19 最終更新日: 2022/04/19
文書種別
使用方法
詳細
FlexChartのChartTypeを「Histogram」に設定すると、ヒストグラムを表示することができます。
この場合、元データは、一連の連続した間隔(ビン=BinWidthプロパティで指定)に分割されます。そして、このビンの頻度をY値とする棒グラフとして、ヒストグラムが表示されます。
(メモ)
・ヒストグラムでは基本的に"0"を基準とし、BinWidthで指定した間隔ごとにY値が生成されます。
※この基準値を変更する機能は用意されていません。
・X軸の範囲(AxisX.Min~AxisX.Max)を超える領域にデータがある場合、これらは描画されません。
・X軸に任意の目盛りを表示したい場合、KeyValuePairを使用し、指定したX座標の位置に独自ラベルを設定します。
以下に、ヒストグラムの簡単な設定例を記載します。
※X座標に、50から始まり200ごとに独自ラベルを追加するコードを含みます。

◎サンプルコード(VB)
この場合、元データは、一連の連続した間隔(ビン=BinWidthプロパティで指定)に分割されます。そして、このビンの頻度をY値とする棒グラフとして、ヒストグラムが表示されます。
(メモ)
・ヒストグラムでは基本的に"0"を基準とし、BinWidthで指定した間隔ごとにY値が生成されます。
※この基準値を変更する機能は用意されていません。
・X軸の範囲(AxisX.Min~AxisX.Max)を超える領域にデータがある場合、これらは描画されません。
・X軸に任意の目盛りを表示したい場合、KeyValuePairを使用し、指定したX座標の位置に独自ラベルを設定します。
以下に、ヒストグラムの簡単な設定例を記載します。
※X座標に、50から始まり200ごとに独自ラベルを追加するコードを含みます。

◎サンプルコード(VB)
Imports C1.Chart
Imports C1.Win.Chart
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' データの作成
Dim dt As New DataTable()
dt.Columns.AddRange({
New DataColumn("ID", GetType(Integer)),
New DataColumn("Value", GetType(Double))
})
Dim rdm = New Random()
For i = 0 To 100 - 1
dt.Rows.Add($"{i + 1}", rdm.[Next](100, 900))
Next
dt.AcceptChanges()
' ヒストグラムの作成
Dim histogram As Histogram = New Histogram()
histogram.DataSource = dt
histogram.BindingX = "value"
histogram.BinWidth = 100.0R
FlexChart1.Series.Clear()
FlexChart1.Series.Add(histogram)
FlexChart1.ChartType = ChartType.Histogram
' X軸範囲の指定
FlexChart1.AxisX.Min = 0R
FlexChart1.AxisX.Max = 1000.0R
FlexChart1.AxisY.Title = "頻度"
' 独自のX軸ラベルの設定
Dim labelCount = 10
Dim xLabels = New KeyValuePair(Of Int32, String)(labelCount - 1) {}
For i = 0 To labelCount / 2 - 1
xLabels(i) = New KeyValuePair(Of Int32, String)(50 + 200 * i, $"{50 + 200 * i}")
Next
FlexChart1.AxisX.DataSource = xLabels
FlexChart1.AxisX.Binding = "Key,Value"
End Sub
End Class
◎サンプルコード(C#)
using C1.Chart;
using C1.Win.Chart;
namespace FlexChart_Histogram
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// データの作成
var dt = new DataTable();
dt.Columns.AddRange(new DataColumn[] { new DataColumn("ID", typeof(Int32)), new DataColumn("Value", typeof(Double)) });
var rdm = new Random();
for (var i = 0; i < 100; i++)
{
dt.Rows.Add($"{i + 1:00}", rdm.Next(100, 900));
}
dt.AcceptChanges();
// ヒストグラムの作成
var histogram = new Histogram();
histogram.DataSource = dt;
histogram.BindingX = "value";
histogram.BinWidth = 100d;
flexChart1.Series.Clear();
flexChart1.Series.Add(histogram);
flexChart1.ChartType = ChartType.Histogram;
// X軸範囲の指定
flexChart1.AxisX.Min = 0d;
flexChart1.AxisX.Max = 1000d;
flexChart1.AxisY.Title = "頻度";
// 独自のX軸ラベルの設定
var labelCount = 10;
var xLabels = new KeyValuePair<Int32, String>[labelCount];
for (var i = 0; i < labelCount/2 ; i++)
{
xLabels[i] = new KeyValuePair<Int32, String>(50 + 200 * i, $"{50 + 200 * i}");
}
flexChart1.AxisX.DataSource = xLabels;
flexChart1.AxisX.Binding = "Key,Value";
}
}
}