Chartコントロール

なんだかんだ言ってもC#ばかり触っている今日この頃。Androidと違って古巣は居心地がいいものです。まったりした気分でWindowsFormのChartコントロールをいじっていたところ、いろいろとわかったことがあったのでメモしておきます。

今までは円グラフの凡例を引き出すことができないで困っていたり、棒グラフの右端と左端が軸と一致していなかったりと駄目なグラフばかり量産していましたが、msdnに記載がありました。

円グラフの場合はこんな感じ。

[sourcecode language="csharp"] SampleChart.Series.Clear(); SampleChart.Titles.Clear();

        var series = new Series("SampleGraph")
                    {
                        // 円グラフを指定
                        ChartType = SeriesChartType.Pie,

                        // 表題
                        Label = "円グラフ",
                    };

        var index = series.Points.AddXY(0, 10);
        series.Points[index].Name = "A001";
        series.Points[index].Label = "A001";

        index = series.Points.AddXY(0, 50);
        series.Points[index].Name = "A002";
        series.Points[index].Label = "A002";

        index = series.Points.AddXY(0, 40);
        series.Points[index].Name = "A003";
        series.Points[index].Label = "A003";

        // 円グラフの分割
        series.Points[index]["Exploded"] = "True";

        // 円グラフのタイトルを引き出す
        series.Points[index]["PieLabelStyle"] = "Outside";

        // 引き出し線の奥行き
        series.Points[index]["3DLabelLineSize"] = "10";

        SampleChart.ChartAreas[0].Area3DStyle.Enable3D = true;

        SampleChart.IsSoftShadows = true;
        SampleChart.Series.Add(series);
        SampleChart.Titles.Add("円グラフのサンプル");

[/sourcecode]

複合グラフはこちら。

[sourcecode language="csharp"]

    CompositGraph.Series.Clear();
        CompositGraph.ChartAreas.Clear();
        CompositGraph.ChartAreas.Add("CompositGraph");

        // X軸上の0からグラフを始めるかどうかの設定
        CompositGraph.ChartAreas["CompositGraph"].AxisX.IsMarginVisible = false;

        // 0が最小値の場合0を最小値とするかどうかの設定
        CompositGraph.ChartAreas["CompositGraph"].AxisX.IsStartedFromZero = true;

        CompositGraph.ChartAreas["CompositGraph"].AxisY2.IsInterlaced = true;

[/sourcecode]

だんだんいい感じにはなってきました。まだまだ足りない部分が多いですが…。

ソリューションファイルはこちらからどうぞ。