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[])); |