前回Chartコントロールの「折れ線グラフ」を表示してみました。
次によく見かけるグラフに「棒グラフ」がありますので、表示してみます。
SeriesChartType.Barという値
グラフの表示方法を変えるには、Series(System.Windows.Forms.DataVisualization.Charting名前空間)クラスのChartTypeプロパティを設定します。
VisualStudioでC#の実装をしていると、メンバや列挙子の値の候補がリストで表示されます。
‘Series.ChartType = SeriesChartType.’まで入力すると候補が表示され、その中に”Bar”があります。
SeriesChartType.Barを指定したサンプルです。
private void Form1_Load(object sender, EventArgs e) { // フォームをロードするときの処理 chart1.Series.Clear(); // ← 最初からSeriesが1つあるのでクリアします chart1.ChartAreas.Clear(); // ChartにChartAreaを追加します string chart_area1 = "Area1"; chart1.ChartAreas.Add(new ChartArea(chart_area1)); // ChartにSeriesを追加します string legend1 = "Graph1"; chart1.Series.Add(legend1); // グラフの種別を指定 chart1.Series[legend1].ChartType = SeriesChartType.Bar; // 棒グラフを指定してみます // データを用意します double[] y_values = new double[5] { 1.0, 1.2, 0.8, 1.8, 0.2 }; // データをシリーズにセットします for (int i = 0; i < y_values.Length; i++) { chart1.Series[legend1].Points.AddY(y_values[i]); } }
この”Bar”を指定すると、ちょっとイメージと違うグラフが表示されて困惑します。
SeriesChartType.Barを指定するとグラフは、このように表示されます。
たしかに「棒グラフ」を機械翻訳にかけると”Bar graph”とでるので、この’Bar’を指定したくなります。
英単語として”Bar”は、「横木」とか「突っ張り」(当然「酒場」の意味もあります)という意味のようで、ここで表示されているのは、たしかに「横向きの棒グラフ」です。
‘SeriesChartType.Bar’が横向きだとすると、縦の棒グラフは何を指定するの?となってしまいます。
Series.ChartTypeプロパティ
ChartTypeプロパティの型はSeriesChartTypeというenum(列挙子)です。
全部で35種類あるようです。
数値
|
名称
|
グラフの種類
|
0 | Point | ポイント グラフ |
1 | FastPoint | FastPoint グラフ |
2 | Bubble | バブル チャート |
3 | Line | 折れ線グラフ |
4 | Spline | スプライン グラフ |
5 | StepLine | StepLine グラフ |
6 | FastLine | FastLine グラフ |
7 | Bar | 横棒グラフ |
8 | StackedBar | 積み上げ横棒グラフ |
9 | StackedBar100 | 100% 積み上げ横棒グラフ |
10 | Column | 縦棒グラフ |
11 | StackedColumn | 積み上げ縦棒グラフ |
12 | StackedColumn100 | 100% 積み上げ縦棒グラフ |
13 | Area | 面グラフ |
14 | SplineArea | スプライン面グラフ |
15 | StackedArea | 積み上げ面グラフ |
16 | StackedArea100 | 100% 積み上げ面グラフ |
17 | Pie | 円グラフ |
18 | Doughnut | ドーナツ グラフ |
19 | Stock | 株価チャート |
20 | Candlestick | ローソク足チャート |
21 | Range | 範囲グラフ |
22 | SplineRange | スプライン範囲グラフ |
23 | RangeBar | RangeBar グラフ |
24 | RangeColumn | 範囲縦棒グラフ |
25 | Radar | レーダー チャート |
26 | Polar | 極座標グラフ |
27 | ErrorBar | 誤差範囲グラフ |
28 | BoxPlot | ボックス プロット グラフ |
29 | Renko | 練行足チャート |
30 | ThreeLineBreak | ThreeLineBreak グラフ |
31 | Kagi | かぎ足チャート |
32 | PointAndFigure | PointAndFigure グラフ |
33 | Funnel | じょうごグラフ |
34 | Pyramid | ピラミッド グラフ |
たしかに、”Bar”は「横棒」のようです。「縦棒」は”Column”のようですので先ほどのコードのChartTypeの指定を変更してみます。
サンプルコードです。
private void Form1_Load(object sender, EventArgs e) { // フォームをロードするときの処理 chart1.Series.Clear(); // ← 最初からSeriesが1つあるのでクリアします chart1.ChartAreas.Clear(); // ChartにChartAreaを追加します string chart_area1 = "Area1"; chart1.ChartAreas.Add(new ChartArea(chart_area1)); // ChartにSeriesを追加します string legend1 = "Graph1"; chart1.Series.Add(legend1); // グラフの種別を指定 chart1.Series[legend1].ChartType = SeriesChartType.Column; // 棒グラフを指定してみます // データを用意します double[] y_values = new double[5] { 1.0, 1.2, 0.8, 1.8, 0.2 }; // データをシリーズにセットします for (int i = 0; i < y_values.Length; i++) { chart1.Series[legend1].Points.AddY(y_values[i]); } }
こちらのコードを実行すると下図のように表示されます。
よく見る棒グラフになりました。