作成日: 2014/09/26 最終更新日: 2015/02/25
文書種別
使用方法
詳細
アラームゾーンを利用して、折れ線グラフ同士の間にある範囲を塗り潰し表示することができます。
◆サンプルコード
[VB]
[C#]
◆サンプルコード
[VB]
' 軸の設定
C1WebChart1.ChartArea.AxisY.SetMinMax(0, 100)
C1WebChart1.ChartArea.AxisX.SetMinMax(0, 20)
' 折れ線グラフの作成
Dim r As New Random()
C1WebChart1.ChartGroups.Group0.ChartData.SeriesList.Clear()
Dim series0 As ChartDataSeries = C1WebChart1.ChartGroups.Group0.ChartData.SeriesList.AddNewSeries()
series0.SymbolStyle.Shape = SymbolShapeEnum.None
series0.LineStyle.Color = System.Drawing.Color.Red
For i As Integer = 0 To 20
series0.X.Add(CSng(i))
series0.Y.Add(CSng(r.[Next](50, 99)))
Next
Dim series1 As ChartDataSeries = C1WebChart1.ChartGroups.Group0.ChartData.SeriesList.AddNewSeries()
series1.SymbolStyle.Shape = SymbolShapeEnum.None
series1.LineStyle.Color = System.Drawing.Color.Blue
For i As Integer = 0 To 20
series1.X.Add(CSng(i))
series1.Y.Add(CSng(r.[Next](1, 49)))
Next
' アラームゾーン作成用のデータ
Dim max As Integer = C1WebChart1.ChartGroups.Group0.ChartData.SeriesList(0).Length
Dim x0 As Single() = DirectCast(C1WebChart1.ChartGroups(0).ChartData.SeriesList(0).X.CopyDataOut(), Single())
Dim y0 As Single() = DirectCast(C1WebChart1.ChartGroups(0).ChartData.SeriesList(0).Y.CopyDataOut(), Single())
Dim x1 As Single() = DirectCast(C1WebChart1.ChartGroups(0).ChartData.SeriesList(1).X.CopyDataOut(), Single())
Dim y1 As Single() = DirectCast(C1WebChart1.ChartGroups(0).ChartData.SeriesList(1).Y.CopyDataOut(), Single())
Dim tempX As Double() = New [Double](max * 2 - 1) {}
Dim tempY As Double() = New [Double](max * 2 - 1) {}
Array.Reverse(x1)
Array.Reverse(y1)
Array.Copy(x0, 0, tempX, 0, max)
Array.Copy(y0, 0, tempY, 0, max)
Array.Copy(x1, 0, tempX, max, max)
Array.Copy(y1, 0, tempY, max, max)
' アラームゾーンの作成
C1WebChart1.ChartArea.PlotArea.AlarmZones.Clear()
Dim zone As AlarmZone
zone = C1WebChart1.ChartArea.PlotArea.AlarmZones.AddNewZone()
zone.GroupIndex = 0
zone.BackColor = System.Drawing.Color.LavenderBlush
zone.Shape = AlarmZoneShapeEnum.Polygon
zone.PolygonData.PolygonSource = PolygonSourceEnum.Arrays
zone.PolygonData.X.CopyDataIn(tempX)
zone.PolygonData.Y.CopyDataIn(tempY)
zone.Visible = True
C1WebChart1.ChartArea.AxisY.SetMinMax(0, 100)
C1WebChart1.ChartArea.AxisX.SetMinMax(0, 20)
' 折れ線グラフの作成
Dim r As New Random()
C1WebChart1.ChartGroups.Group0.ChartData.SeriesList.Clear()
Dim series0 As ChartDataSeries = C1WebChart1.ChartGroups.Group0.ChartData.SeriesList.AddNewSeries()
series0.SymbolStyle.Shape = SymbolShapeEnum.None
series0.LineStyle.Color = System.Drawing.Color.Red
For i As Integer = 0 To 20
series0.X.Add(CSng(i))
series0.Y.Add(CSng(r.[Next](50, 99)))
Next
Dim series1 As ChartDataSeries = C1WebChart1.ChartGroups.Group0.ChartData.SeriesList.AddNewSeries()
series1.SymbolStyle.Shape = SymbolShapeEnum.None
series1.LineStyle.Color = System.Drawing.Color.Blue
For i As Integer = 0 To 20
series1.X.Add(CSng(i))
series1.Y.Add(CSng(r.[Next](1, 49)))
Next
' アラームゾーン作成用のデータ
Dim max As Integer = C1WebChart1.ChartGroups.Group0.ChartData.SeriesList(0).Length
Dim x0 As Single() = DirectCast(C1WebChart1.ChartGroups(0).ChartData.SeriesList(0).X.CopyDataOut(), Single())
Dim y0 As Single() = DirectCast(C1WebChart1.ChartGroups(0).ChartData.SeriesList(0).Y.CopyDataOut(), Single())
Dim x1 As Single() = DirectCast(C1WebChart1.ChartGroups(0).ChartData.SeriesList(1).X.CopyDataOut(), Single())
Dim y1 As Single() = DirectCast(C1WebChart1.ChartGroups(0).ChartData.SeriesList(1).Y.CopyDataOut(), Single())
Dim tempX As Double() = New [Double](max * 2 - 1) {}
Dim tempY As Double() = New [Double](max * 2 - 1) {}
Array.Reverse(x1)
Array.Reverse(y1)
Array.Copy(x0, 0, tempX, 0, max)
Array.Copy(y0, 0, tempY, 0, max)
Array.Copy(x1, 0, tempX, max, max)
Array.Copy(y1, 0, tempY, max, max)
' アラームゾーンの作成
C1WebChart1.ChartArea.PlotArea.AlarmZones.Clear()
Dim zone As AlarmZone
zone = C1WebChart1.ChartArea.PlotArea.AlarmZones.AddNewZone()
zone.GroupIndex = 0
zone.BackColor = System.Drawing.Color.LavenderBlush
zone.Shape = AlarmZoneShapeEnum.Polygon
zone.PolygonData.PolygonSource = PolygonSourceEnum.Arrays
zone.PolygonData.X.CopyDataIn(tempX)
zone.PolygonData.Y.CopyDataIn(tempY)
zone.Visible = True
[C#]
// 軸の設定
C1WebChart1.ChartArea.AxisY.SetMinMax(0, 100);
C1WebChart1.ChartArea.AxisX.SetMinMax(0, 20);
// 折れ線グラフの作成
Random r = new Random();
C1WebChart1.ChartGroups.Group0.ChartData.SeriesList.Clear();
ChartDataSeries series0 = C1WebChart1.ChartGroups.Group0.ChartData.SeriesList.AddNewSeries();
series0.SymbolStyle.Shape = SymbolShapeEnum.None;
series0.LineStyle.Color = System.Drawing.Color.Red;
for (int i = 0; i < 21; i++)
{
series0.X.Add((float)(i));
series0.Y.Add((float)(r.Next(50, 99)));
}
ChartDataSeries series1 = C1WebChart1.ChartGroups.Group0.ChartData.SeriesList.AddNewSeries();
series1.SymbolStyle.Shape = SymbolShapeEnum.None;
series1.LineStyle.Color = System.Drawing.Color.Blue;
for (int i = 0; i < 21; i++)
{
series1.X.Add((float)(i));
series1.Y.Add((float)(r.Next(1, 49)));
}
// アラームゾーン作成用のデータ
int max = C1WebChart1.ChartGroups.Group0.ChartData.SeriesList[0].Length;
float[] x0 = (float[])C1WebChart1.ChartGroups[0].ChartData.SeriesList[0].X.CopyDataOut();
float[] y0 = (float[])C1WebChart1.ChartGroups[0].ChartData.SeriesList[0].Y.CopyDataOut();
float[] x1 = (float[])C1WebChart1.ChartGroups[0].ChartData.SeriesList[1].X.CopyDataOut();
float[] y1 = (float[])C1WebChart1.ChartGroups[0].ChartData.SeriesList[1].Y.CopyDataOut();
double[] tempX = new Double[max * 2];
double[] tempY = new Double[max * 2];
Array.Reverse(x1);
Array.Reverse(y1);
Array.Copy(x0, 0, tempX, 0, max);
Array.Copy(y0, 0, tempY, 0, max);
Array.Copy(x1, 0, tempX, max, max);
Array.Copy(y1, 0, tempY, max, max);
// アラームゾーンの作成
C1WebChart1.ChartArea.PlotArea.AlarmZones.Clear();
AlarmZone zone;
zone = C1WebChart1.ChartArea.PlotArea.AlarmZones.AddNewZone();
zone.GroupIndex = 0;
zone.BackColor = System.Drawing.Color.LavenderBlush;
zone.Shape = AlarmZoneShapeEnum.Polygon;
zone.PolygonData.PolygonSource = PolygonSourceEnum.Arrays;
zone.PolygonData.X.CopyDataIn(tempX);
zone.PolygonData.Y.CopyDataIn(tempY);
zone.Visible = true;
C1WebChart1.ChartArea.AxisY.SetMinMax(0, 100);
C1WebChart1.ChartArea.AxisX.SetMinMax(0, 20);
// 折れ線グラフの作成
Random r = new Random();
C1WebChart1.ChartGroups.Group0.ChartData.SeriesList.Clear();
ChartDataSeries series0 = C1WebChart1.ChartGroups.Group0.ChartData.SeriesList.AddNewSeries();
series0.SymbolStyle.Shape = SymbolShapeEnum.None;
series0.LineStyle.Color = System.Drawing.Color.Red;
for (int i = 0; i < 21; i++)
{
series0.X.Add((float)(i));
series0.Y.Add((float)(r.Next(50, 99)));
}
ChartDataSeries series1 = C1WebChart1.ChartGroups.Group0.ChartData.SeriesList.AddNewSeries();
series1.SymbolStyle.Shape = SymbolShapeEnum.None;
series1.LineStyle.Color = System.Drawing.Color.Blue;
for (int i = 0; i < 21; i++)
{
series1.X.Add((float)(i));
series1.Y.Add((float)(r.Next(1, 49)));
}
// アラームゾーン作成用のデータ
int max = C1WebChart1.ChartGroups.Group0.ChartData.SeriesList[0].Length;
float[] x0 = (float[])C1WebChart1.ChartGroups[0].ChartData.SeriesList[0].X.CopyDataOut();
float[] y0 = (float[])C1WebChart1.ChartGroups[0].ChartData.SeriesList[0].Y.CopyDataOut();
float[] x1 = (float[])C1WebChart1.ChartGroups[0].ChartData.SeriesList[1].X.CopyDataOut();
float[] y1 = (float[])C1WebChart1.ChartGroups[0].ChartData.SeriesList[1].Y.CopyDataOut();
double[] tempX = new Double[max * 2];
double[] tempY = new Double[max * 2];
Array.Reverse(x1);
Array.Reverse(y1);
Array.Copy(x0, 0, tempX, 0, max);
Array.Copy(y0, 0, tempY, 0, max);
Array.Copy(x1, 0, tempX, max, max);
Array.Copy(y1, 0, tempY, max, max);
// アラームゾーンの作成
C1WebChart1.ChartArea.PlotArea.AlarmZones.Clear();
AlarmZone zone;
zone = C1WebChart1.ChartArea.PlotArea.AlarmZones.AddNewZone();
zone.GroupIndex = 0;
zone.BackColor = System.Drawing.Color.LavenderBlush;
zone.Shape = AlarmZoneShapeEnum.Polygon;
zone.PolygonData.PolygonSource = PolygonSourceEnum.Arrays;
zone.PolygonData.X.CopyDataIn(tempX);
zone.PolygonData.Y.CopyDataIn(tempY);
zone.Visible = true;
旧文書番号
72065