作成日: 2023/08/01 最終更新日: 2023/08/01
文書種別
使用方法
詳細
積層グラフで、指定した要素の色を変更するには、各シリーズのSymbolRenderingイベントを使用し、e.Indexで要素番号を指定してEngine.SetFillメソッド、SetStrokeメソッドを実行します。
以下に、シリーズ1の要素番号0,シリーズ2の要素番号1,シリーズ3の要素番号1 の色を変更するためのサンプルコードを記載します。

◎サンプルコード(VB)
以下に、シリーズ1の要素番号0,シリーズ2の要素番号1,シリーズ3の要素番号1 の色を変更するためのサンプルコードを記載します。
◎サンプルコード(VB)
Imports C1.Chart
Imports C1.Win.Chart
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
FlexChart1.Series.Clear()
' 積層棒グラフのデータ系列の作成
FlexChart1.BeginUpdate()
Dim item1 As Series = New Series() With
{
.Name = "系列1",
.Binding = "Y",
.BindingX = "X",
.DataSource = New PointF() {New PointF(1, 1), New PointF(2, 1), New PointF(3, 1)}
}
FlexChart1.Series.Add(item1)
Dim item2 As Series = New Series() With
{
.Name = "系列2",
.Binding = "Y",
.BindingX = "X",
.DataSource = New PointF() {New PointF(1, 1), New PointF(2, 1), New PointF(3, 1)}
}
FlexChart1.Series.Add(item2)
Dim item3 As Series = New Series() With
{
.Name = "系列3",
.Binding = "Y",
.BindingX = "X",
.DataSource = New PointF() {New PointF(1, 2), New PointF(2, 2), New PointF(3, 2)}
}
FlexChart1.Series.Add(item3)
' チャートの設定
FlexChart1.ChartType = ChartType.Column
FlexChart1.Stacking = Stacking.Stacked
FlexChart1.Legend.Position = Position.Bottom
' SymbolRenderingイベントの追加
AddHandler item1.SymbolRendering, AddressOf series1_SymbolRendering
AddHandler item2.SymbolRendering, AddressOf series2_SymbolRendering
AddHandler item3.SymbolRendering, AddressOf series3_SymbolRendering
FlexChart1.EndUpdate()
End Sub
' 特定の要素の色を変更
Private Sub series1_SymbolRendering(ByVal sender As Object, ByVal e As RenderSymbolEventArgs)
If e.Index = 0 Then
e.Engine.SetFill(Brushes.Red)
e.Engine.SetStroke(Brushes.Red)
End If
End Sub
Private Sub series2_SymbolRendering(ByVal sender As Object, ByVal e As RenderSymbolEventArgs)
If e.Index = 1 Then
e.Engine.SetFill(Brushes.Red)
e.Engine.SetStroke(Brushes.Red)
End If
End Sub
Private Sub series3_SymbolRendering(ByVal sender As Object, ByVal e As RenderSymbolEventArgs)
If e.Index = 2 Then
e.Engine.SetFill(Brushes.Red)
e.Engine.SetStroke(Brushes.Red)
End If
End Sub
End Class
◎サンプルコード(C#)
using C1.Chart;
using C1.Win.Chart;
namespace prj_FlexChart_Stacked
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
flexChart1.Series.Clear();
// 積層棒グラフのデータ系列の作成
flexChart1.BeginUpdate();
Series item1 = new Series()
{
Name = "系列1",
Binding = "Y",
BindingX = "X",
DataSource = new PointF[] { new PointF(1, 1), new PointF(2, 1), new PointF(3, 1) }
};
flexChart1.Series.Add(item1);
Series item2 = new Series()
{
Name = "系列1",
Binding = "Y",
BindingX = "X",
DataSource = new PointF[] { new PointF(1, 1), new PointF(2, 1), new PointF(3, 1) }
};
flexChart1.Series.Add(item2);
Series item3 = new Series()
{
Name = "系列1",
Binding = "Y",
BindingX = "X",
DataSource = new PointF[] { new PointF(1, 2), new PointF(2, 2), new PointF(3, 2) }
};
flexChart1.Series.Add(item3);
// チャートの設定
flexChart1.ChartType = ChartType.Column;
flexChart1.Stacking = Stacking.Stacked;
flexChart1.Legend.Position = Position.Bottom;
// SymbolRenderingイベントの追加
item1.SymbolRendering += series1_SymbolRendering;
item2.SymbolRendering += series2_SymbolRendering;
item3.SymbolRendering += series3_SymbolRendering;
flexChart1.EndUpdate();
}
// 特定の要素の色を変更
private void series1_SymbolRendering(object sender, RenderSymbolEventArgs e)
{
if ((e.Index == 0))
{
e.Engine.SetFill(Brushes.Red);
e.Engine.SetStroke(Brushes.Red);
}
}
private void series2_SymbolRendering(object sender, RenderSymbolEventArgs e)
{
if ((e.Index == 1))
{
e.Engine.SetFill(Brushes.Red);
e.Engine.SetStroke(Brushes.Red);
}
}
private void series3_SymbolRendering(object sender, RenderSymbolEventArgs e)
{
if ((e.Index == 2))
{
e.Engine.SetFill(Brushes.Red);
e.Engine.SetStroke(Brushes.Red);
}
}
}
}