FlexChart for WinForms
横棒
FlexChart > FlexChart の理解 > FlexChart タイプ > 横棒

横棒グラフは、さまざまなカテゴリの値を比較したり、データ系列内の経時的な変動を表示します。このチャートは、X 軸にプロットされるデータ系列を横棒として表示し、カテゴリまたは項目を Y 軸に配置します。

ある小売店が 6 種類の飲料品を注文するとします。注文は卸業者に行われ、卸業者は商品について必要な情報を小売店に提供します。この情報は、商品の単位単価、在庫単位数、発注可能単位数で構成されます。

小売店が商品を注文する条件は、単価 < $25、在庫単位数 > 20、発注可能単位数 > 20 です。

小売店がどの商品を注文するかを決めるために役立つ比較チャートを作成してみます。比較する商品の数は 6 なので、この場合は横棒グラフが適しています。

サンプルデータテーブル

飲み物 単位価格 ($) 在庫にあり単位 注目中の単位
紅茶 18 39 40
コーヒー 19 17 70
コクテル 10 13 30
ノンアルコールカクテル 22 53 20
ソフトドリンク 21 120 70
ミネラルウォーター 25 90 40

横棒グラフ

上のグラフは、6 つの商品の単価、在庫単位数、注目中の単位を比較しています。3 つの系列の横棒が異なる色でレンダリングされています。

次のコードは、このシナリオの実装です。

' データテーブルを作成します
Dim dt As New DataTable("Product Comparison")

' データテーブルに列を追加します
dt.Columns.Add("Beverages", GetType(String))
dt.Columns.Add("Unit Price", GetType(Integer))
dt.Columns.Add("Units In Stock", GetType(Integer))
dt.Columns.Add("Units On Order", GetType(Integer))

' データテーブルに行を追加します
dt.Rows.Add("紅茶", 18, 39, 40)
dt.Rows.Add("コーヒー", 19, 17, 70)
dt.Rows.Add("コクテル", 10, 13, 30)
dt.Rows.Add("モクテル", 22, 53, 20)
dt.Rows.Add("ソフトドリンク", 21, 120, 70)
dt.Rows.Add("ミネラルウォーター", 25, 90, 40)

' データ系列コレクションをクリアします
FlexChart1.Series.Clear()

' データ系列を作成します
Dim series1 As New C1.Win.Chart.Series()
Dim series2 As New C1.Win.Chart.Series()
Dim series3 As New C1.Win.Chart.Series()

' データ系列コレクションにデータ系列を追加します
FlexChart1.Series.Add(series1)
FlexChart1.Series.Add(series2)
FlexChart1.Series.Add(series3)

' チャートのデータソースを指定します
FlexChart1.DataSource = dt

' X軸を結合します
FlexChart1.BindingX = "Beverages"

' Y軸を結合します
series1.Binding = "Unit Price"
series2.Binding = "Units In Stock"
series3.Binding = "Units On Order"

' 系列の名前を指定します
series1.Name = "単位価格"
series2.Name = "在庫にあり単位"
series3.Name = "注目中の単位"

' チャートタイプを横棒グラフに設定します
FlexChart1.ChartType = C1.Chart.ChartType.Bar
// データテーブルを作成します
DataTable dt = new DataTable("Product Comparison");

// データテーブルに列を追加します
dt.Columns.Add("Beverages", typeof(string));
dt.Columns.Add("Unit Price", typeof(int));
dt.Columns.Add("Units In Stock", typeof(int));
dt.Columns.Add("Units On Order", typeof(int));

// データテーブルに行を追加します
dt.Rows.Add("紅茶", 18, 39, 40);
dt.Rows.Add("コーヒー", 19, 17, 70); 
dt.Rows.Add("コクテル ", 10, 13, 30); 
dt.Rows.Add("モクテル", 22, 53, 20); 
dt.Rows.Add("ソフトドリンク", 21, 120, 70); 
dt.Rows.Add("ミネラルウォーター", 25, 90, 40); 

// データ系列コレクションをクリアします
flexChart1.Series.Clear();

// データ系列を作成します
C1.Win.Chart.Series series1 = new C1.Win.Chart.Series();
C1.Win.Chart.Series series2 = new C1.Win.Chart.Series();
C1.Win.Chart.Series series3 = new C1.Win.Chart.Series();

// データ系列コレクションにデータ系列を追加します
flexChart1.Series.Add(series1);
flexChart1.Series.Add(series2);
flexChart1.Series.Add(series3);

// チャートのデータソースを指定します
flexChart1.DataSource = dt;

// X軸を結合します
flexChart1.BindingX = "Beverages";

// Y軸を結合します
series1.Binding = "Unit Price";
series2.Binding = "Units In Stock";
series3.Binding = "Units On Order";
            
// 系列の名前を指定します
series1.Name = "単位価格";
series2.Name = "在庫にあり単位";
series3.Name = "注目中の単位";

// set the chart type to bar
flexChart1.ChartType = C1.Chart.ChartType.Bar;