C1Chart では、X、Y、Y1、Y2、および Y3 データ配列オブジェクトは Object データ型を受け入れます。これにより、さまざまな .NET の配列型が ChartDataArray オブジェクト(PointData 配列は除く)に入力できるようになります。ChartDataArray オブジェクトの CopyDataIn メソッドは、さまざまな配列型をとることができる Object データ型を取り、これをデータ配列に読み込みます。
適切な実装を行うために、データセットの配列のセットを保持し、グラフを描画する前に値の配列を使用して C1Chart のデータ配列オブジェクトを更新することをお勧めします。これにより、データを完全に制御し、データ値の一括処理を制御することができます。以下の例は、配列を構築して、グラフのデータ配列オブジェクトに設定する簡単なサンプルコードを示します。
Visual Basic コードの書き方
| Visual Basic |
コードのコピー
|
|---|---|
Dim xp(9) As Single
Dim yp(9) As Single
Dim i As Integer
For i = 0 To 9
xp(i) = i
yp(i) = i * i
Next i
With C1Chart1.ChartGroups.ChartGroupsCollection(0).ChartData.SeriesList(0)
.X.CopyDataIn(xp)
.Y.CopyDataIn(yp)
End With
|
|
C# コードの書き方
| C# |
コードのコピー
|
|---|---|
float xp(10);
float yp(10);
int i;
for( i=0; i < 10; i++)
{
xp[i] = i;
yp[i] = i * i;
}
ChartDataSeries cds = c1Chart1.ChartGroups.ChartGroupsCollection[0].ChartData.SeriesList[0];
cds.X.CopyDataIn(xp);
cds.Y.CopyDataIn(yp);
|
|
CopyDataIn メソッドは配列データを ChartDataArray オブジェクトに読み込みますが、CopyDataOut メソッドは配列オブジェクトからデータを抽出します。このメソッドは、データ配列を含む Object データ型を返します。
Visual Basic コードの書き方
| Visual Basic |
コードのコピー
|
|---|---|
Dim xpo As Object Dim cds As ChartDataSeries cds = C1Chart1.ChartGroups.ChartGroupsCollection(0).ChartData.SeriesList(0) xpo = cds.X.CopyDataOut() |
|
C# コードの書き方
| C# |
コードのコピー
|
|---|---|
object xpo; ChartDataSeries cds; cds = c1Chart1.ChartGroups.ChartGroupsCollection[0].ChartData.SeriesList[0]; xpo = cds.X.CopyDataOut(); |
|
この Object の適切なデータ型の配列への変換を不要にするため、CopyDataOut メソッドは指定したデータ型の配列の生成を可能にする System.Type のパラメータも受け入れることができます。パラメータには実際のデータ型が必要なため、適切なデータ型を取得するために、コードには GetType()(C# では、typeof())関数を含める必要があります。以下のサンプルコードでは、配列は CopyDataOut メソッドによって、グラフの ChartDataArray オブジェクトから返されます。ただし、データ配列の型は単精度型です。
Visual Basic コードの書き方
| Visual Basic |
コードのコピー
|
|---|---|
Dim xpo As Single() Dim ypo As Single() With C1Chart1.ChartGroups.ChartGroupsCollection(0).ChartData.SeriesList(0) xpo = .X.CopyDataOut(GetType(Single())) ypo = .Y.CopyDataOut(GetType(Single())) End With |
|
C# コードの書き方
| C# |
コードのコピー
|
|---|---|
ChartDataSeries cds; cds = c1Chart1.ChartGroups.ChartGroupsCollection[0].ChartData.SeriesList[0]; float[] xpo = cds.X.CopyDataOut(typeof(float[])); float[] ypo = cds.Y.CopyDataOut(typeof(float[])); |
|
Visual Basic コードの書き方
| Visual Basic |
コードのコピー
|
|---|---|
Dim xpo() As Single xpo = CType(C1Chart1.ChartGroups.ChartGroupsCollection(0), Single())_ .ChartData.SeriesList(0).X.CopyDataOut(GetType(Single())) |
|
C# コードの書き方
| C# |
コードのコピー
|
|---|---|
float[] xpo; xpo = (float[])c1Chart1.ChartGroups.ChartGroupsCollection[0].ChartData .SeriesList[0].X.CopyDataOut(typeof(float[])); |
|