C1ScatterChartコントロールの作成
続いて、C1ScatterChartコントロールをページにドラッグアンドドロップして作成しましょう。C1ScatterChartコントロールの設定はデフォルトのままで、あとはコードでデータ設定やラベルの作成を行います。
(1)コードウィンドウを開き、最初に「C1.Web.Wijmo.Controls.C1Chart」名前空間への参照を設定してください。次に、独自のメソッド(VBはSubプロシージャ)「setupchart」を作成します。
(2)C1ScatterChartコントロールにグリッドのデータを設定するには、データ系列用の配列を作成し、これをScatterChartSeriesオブジェクトに設定します。
まず、Double型の配列を用意します。要素数はグリッドの行数を使います。これは、C1GridViewコントロールのRowsコレクションのCountプロパティから取得します。ただし、Visual Basicの場合のみ、Countプロパティの値から1を差し引いた値を配列の要素数にします。
Imports C1.Web.Wijmo.Controls.C1Chart Public Class _Default Inherits System.Web.UI.Page Private Sub setupchart() Dim i As Integer Dim cnt As Integer = C1GridView1.Rows.Count - 1 Dim H221(cnt) As Double Dim H222(cnt) As Double Dim H231(cnt) As Double Dim H232(cnt) As Double
using C1.Web.Wijmo.Controls.C1Chart; namespace scatterchart_ASP_cs { public partial class _Default : System.Web.UI.Page { private void setupchart() { int i; int cnt = C1GridView1.Rows.Count; double[] H221 = new double[cnt]; double[] H222 = new double[cnt]; double[] H231 = new double[cnt]; double[] H232 = new double[cnt];
(3)作成した配列にグリッドデータを転送していきます。まずは、平成22年度分のデータ12行を取り出して、2つの配列に格納します。列「運航時間」はC1GridViewコントロールの「Rows(i).Cells(1).Text」で、「旅客数」は「Rows[i].Cells[2].Text」という式でデータにアクセスできます。ただし、Textプロパティの値は文字列なので、Convertクラスを使用してDoubleに変換します。
'平成22年系列一覧 For i = 0 To cnt H221(i) = Convert.ToDouble(C1GridView1.Rows(i).Cells(1).Text) Next For i = 0 To cnt H222(i) = Convert.ToDouble(C1GridView1.Rows(i).Cells(2).Text) Next
// 平成22年系列一覧 for (i = 0; i < cnt; i++) { H221[i] = Convert.ToDouble(C1GridView1.Rows[i].Cells[1].Text); } for (i = 0; i < cnt; i++) { H222[i] = Convert.ToDouble(C1GridView1.Rows[i].Cells[2].Text); }
(4)作成した配列をC1ScatterChartコントロールに設定します。まずは、ScatterChartSeriesクラスのインスタンスを作成し、それをSeriesListプロパティに追加しましょう。
次に、作成した配列をXY軸のDataオブジェクトにAddRangeメソッドで組み込みます。X軸には列「旅客数」のデータを、Y軸には列「運航回数」のデータを設定します。これで、グリッドのデータをグラフ化することができます。
Dim series1 = New ScatterChartSeries() C1ScatterChart1.SeriesList.Add(series1) series1.Data.X.AddRange(H221) series1.Data.Y.AddRange(H222)
var series1 = new ScatterChartSeries(); this.C1ScatterChart1.SeriesList.Add(series1); series1.Data.X.AddRange(H221); series1.Data.Y.AddRange(H222);
(5)作成したグラフの凡例ラベルに、グリッドの列見出しを設定します。凡例はX軸のデータなので、グリッドの列「旅客数」の列見出しを設定してください。列見出しはHeaderTextプロパティから取得します。
そして、凡例を自動的に生成するかどうかを決めるLegendEntryプロパティをTrueにし、凡例を自動作成します。
また、データ点の形状を決める「MarkerType」プロパティに値「MarkerType.Circle」を設定し、円形のポイント形状にします。
なお、データ点の形状には以下の値を使うことができます。
メンバ名 | 説明 |
---|---|
Tri | 塗りつぶした三角形で表したデータポイント。 |
InvertedTri | 塗りつぶした逆三角形で表したデータポイント。 |
Box | 塗りつぶした四角形で表したデータポイント。 |
Diamond | 塗りつぶしたひし形で表したデータポイント。 |
Cross | 十字線で表したデータポイント。 |
Circle | 中抜きの円で表したデータポイント。 |
series1.Label = C1GridView1.Columns(0).HeaderText series1.LegendEntry = True series1.MarkerType = MarkerType.Circle
series1.Label = C1GridView1.Columns[0].HeaderText; series1.LegendEntry = true; series1.MarkerType = MarkerType.Circle;