TrueChart for WinForms (C1Chart2D)
単純な棒グラフ
C1Chart の標準的なグラフの概要 > 単純な棒グラフ

一般に、グラフを使用して、製品価格のような一連の単純な値を表示します。この種のグラフでは、各値の相対的な大きさをすばやく効果的に表示できるため便利です。

このようなグラフの主要な特長は、各点が1個の情報のみを保持していることです。これらのグラフを作成するとき、表示される値はデータセットの Y 値に割り当てられます。X 値は、点同士の一定間隔を提供するだけで、通常、各データ点に添付されたラベルを表示します。

このタイプの情報に推奨されるグラフの種類は、棒グラフと円グラフです。

下図は、製品価格(NorthWind の製品リストの飲料)の単純な棒グラフを示します。


垂直軸に製品名を表示するスペースを提供するため、各棒は水平方向に表示されることに注意してください。これを行うには、 Invertedプロパティを使用します。

棒グラフを作成するために使用するコードは以下のとおりです。実際のアプリケーションでは、一部のプロパティは設計時に設定されるためコードはさらに単純になります。

Visual Basic コードの書き方

Visual Basic
コードのコピー
' グラフデータを取得します。
Dim data As DataView = _dataSet.Tables("Products").DefaultView
data.Sort = "UnitPrice"
data.RowFilter = "CategoryID = 1" ' beverages
            
' グラフを設定します。
C1Chart1.Reset()
C1Chart1.ChartArea.Inverted = true
C1Chart1.ChartGroups(0).ChartType = Chart2DTypeEnum.Bar

' 「製品価格」データセットを作成します。
Dim dscoll As ChartDataSeriesCollection = C1Chart1.ChartGroups(0).ChartData.SeriesList
dscoll.Clear()
Dim series As ChartDataSeries = dscoll.AddNewSeries()
series.Label = "Product Prices"

' データセットにデータを入力します。
series.PointData.Length = data.Count
Dim i As Integer
For i = 0 To data.Count ? 1
series.X(i) = I
series.Y(i) = data(i)("UnitPrice")
Next I

'  製品名をX 軸に添付します。
Dim ax As Axis = C1Chart1.ChartArea.AxisX
ax.AnnoMethod = AnnotationMethodEnum.ValueLabels
For i = 0 To data.Count ? 1
ax.ValueLabels.Add(i, CType(data(i)("ProductName"), String))
Next I

' Y 軸を設定します。
Dim ay As Axis = C1Chart1.ChartArea.AxisY
ay.AnnoFormat = FormatEnum.NumericCurrency

C# コードの書き方

C#
コードのコピー
// グラフデータを取得します。
DataView data = _dataSet.Tables["Products"].DefaultView;
data.Sort = "UnitPrice";
data.RowFilter = "CategoryID = 1"; // beverages
 
// グラフを設定します。
c1Chart1.Reset();
c1Chart1.ChartArea.Inverted = true;
c1Chart1.ChartGroups[0].ChartType = Chart2DTypeEnum.Bar;
 
// 「製品価格」データセットを作成します。
ChartDataSeriesCollection dscoll = c1Chart1.ChartGroups[0].ChartData.SeriesList;
dscoll.Clear();
ChartDataSeries series = dscoll.AddNewSeries();
series.Label = "Product Prices";
 
// データセットにデータを入力します。
series.PointData.Length = data.Count;
for (int i = 0; i < data.Count; i++)
{
        series.X[i] = i;
        series.Y[i] = data[i]["UnitPrice"];
}
 
//  製品名をX 軸に添付します。
Axis ax = c1Chart1.ChartArea.AxisX;
ax.AnnoMethod = AnnotationMethodEnum.ValueLabels;
for (int i = 0; i < data.Count; i++)
ax.ValueLabels.Add(i, (string)data[i]["ProductName"]);
 
// Y 軸を設定します。
Axis ay = c1Chart1.ChartArea.AxisY;
ay.AnnoFormat = FormatEnum.NumericCurrency;

通常、グラフ上に複数のデータセットを表示しますが、C1Chart ではこれを簡単に行うことができます。ChartDataSeriesCollection に追加リストを追加し、その他は上記と同様のコードになります。

関連トピック