作成日: 2022/04/06 最終更新日: 2022/04/06
文書種別
使用方法
詳細
X軸のラベルは、デフォルトではC1FlexChart(またはSeries)のBindingXに指定したデータから自動生成されます。
この自動生成ラベルに代えて独自のテキストを表示するため、キーおよび値を保持する構造体であるKeyValuePairを利用することができます。
まず、KeyValuePairのKey値にデータのX値を、Value値に独自テキストを設定します。次いで、X軸のDataSourceプロパティにこのKeyValuePairを指定し、Bindingプロパティに前述のKey値名とValue値名を指定します。
例)
flexChart1.AxisX.DataSource = xLabels; //KeyValuePairの配列
flexChart1.AxisX.Binding = "Key,Value";
以下に、数値で指定したX値(0~9)を英文字(A~J)に変更してX軸ラベルとして表示するサンプルを記載します。

◎サンプルコード(VB)
この自動生成ラベルに代えて独自のテキストを表示するため、キーおよび値を保持する構造体であるKeyValuePairを利用することができます。
まず、KeyValuePairのKey値にデータのX値を、Value値に独自テキストを設定します。次いで、X軸のDataSourceプロパティにこのKeyValuePairを指定し、Bindingプロパティに前述のKey値名とValue値名を指定します。
例)
flexChart1.AxisX.DataSource = xLabels; //KeyValuePairの配列
flexChart1.AxisX.Binding = "Key,Value";
以下に、数値で指定したX値(0~9)を英文字(A~J)に変更してX軸ラベルとして表示するサンプルを記載します。

◎サンプルコード(VB)
Imports System.Collections.Generic
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 DataTable = New DataTable()
dt.Columns.Add(New DataColumn("X", GetType(Double)))
dt.Columns.Add(New DataColumn("Y", GetType(Double)))
Dim i As Integer
For i = 0 To 9
dt.Rows.Add(i, i + 1)
Next
dt.AcceptChanges()
' 再描画の一時停止
FlexChart1.BeginUpdate()
' 棒グラフの作成
Dim series1 As Series = New Series()
series1.ChartType = ChartType.Bar
series1.DataSource = dt
series1.BindingX = "X"
series1.Binding = "Y"
FlexChart1.Series.Clear()
FlexChart1.Series.Add(series1)
' 独自のX軸ラベルの設定
Dim xLabels As KeyValuePair(Of Double, String)() = New KeyValuePair(Of Double, String)(9) {}
For i = 0 To xLabels.Length - 1
xLabels(i) = New KeyValuePair(Of Double, String)(i, $"{ChrW((i + 65))}")
Console.WriteLine("xLabels[i].Key : " & xLabels(i).Key.ToString())
Console.WriteLine("xLabels[i].Value : " & xLabels(i).Value.ToString())
Next
FlexChart1.AxisX.DataSource = xLabels
FlexChart1.AxisX.Binding = "Key,Value"
' 再描画の再開
FlexChart1.EndUpdate()
End Sub
End Class
◎サンプルコード(C#)
using System.Collections.Generic;
using C1.Chart;
using C1.Win.Chart;
namespace prj_C1FlexChart
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// データの作成
DataTable dt = new DataTable("Test");
dt.Columns.Add("X", typeof(Double));
dt.Columns.Add("Y", typeof(Double));
for (var i = 0; i < 10; i++)
{
dt.Rows.Add(i, i + 1);
}
dt.AcceptChanges();
// 再描画の一時停止
flexChart1.BeginUpdate();
// 棒グラフの作成
Series series1 = new Series();
series1.ChartType = ChartType.Bar;
series1.DataSource = dt;
series1.BindingX = "X";
series1.Binding = "Y";
flexChart1.Series.Clear();
flexChart1.Series.Add(series1);
// 独自のX軸ラベルの設定
KeyValuePair<Double, String>[] xLabels = new KeyValuePair<double, string>[10];
for (var i = 0; i < xLabels.Length; i++)
{
xLabels[i] = new KeyValuePair<double, string>(i, $"{(char)(i + 65)}");
Console.WriteLine("xLabels[i].Key : " + xLabels[i].Key.ToString());
Console.WriteLine("xLabels[i].Value : " + xLabels[i].Value.ToString());
}
flexChart1.AxisX.DataSource = xLabels;
flexChart1.AxisX.Binding = "Key,Value";
// 再描画の再開
flexChart1.EndUpdate();
}
}
}