C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Form上のChart(グラフコントロール)の初期表示

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■95877 / inTopicNo.1)  Form上のChart(グラフコントロール)の初期表示
  
□投稿者/ taro (4回)-(2020/10/06(Tue) 15:58:03)

分類:[C#] 

VisualStudio2019で、C#でのグラフ(散布図)表示の学習をしております。
当方、C++やJAVA等の他言語は多少の経験がありますが、C#は未経験です。

■やりたいこと
起動時は、データが何もない状態のグラフが表示されており、ボタンを押すとグラフにデータが表示される。

■困っていること
「ボタンを押すとグラフにデータが表示される」はできているのですが、
アプリ起動時に「データが何もない状態のグラフ」が表示されません。
具体的には、グラフはXY軸(目盛り、軸タイトル)のみが表示された状態で起動してほしいのですが、
実際は、Chartコントロールを配置したエリアはなにも表示されていません。
(ボタンを押すと、軸とデータが表示されます)
Form1_Loadメソッドに過不足があると思うのですが、ご教授頂けますでしょうか。


        private void Form1_Load(object sender, EventArgs e)
        {

            // チャートのクリア
            chart1.Series.Clear();
            chart1.ChartAreas.Clear();
            chart1.Titles.Clear();

            // プロットの設定
            Series Series1 = new Series
            {
                ChartType = SeriesChartType.Point,
                BorderWidth = 2,
                MarkerStyle = MarkerStyle.Circle,
                MarkerSize = 2
            };

            // X軸、Y軸のラベル設定
            ChartArea ChartArea1 = new ChartArea();
            ChartArea1.AxisX.Title = "X coord";
            ChartArea1.AxisY.Title = "Y coord";
            ChartArea1.AxisY.IsReversed = false;
            ChartArea1.AxisX.TitleForeColor = Color.Black;

            // タイトルの設定
            Title title1 = new Title("散布図描画検証");

            // チャートに各設定項目追加
            chart1.Titles.Add(title1);
            chart1.ChartAreas.Add(ChartArea1);
            chart1.Series.Add(Series1);

            // Y軸設定
            chart1.ChartAreas[0].AxisY.Minimum = -50;
            chart1.ChartAreas[0].AxisY.Maximum = 500;
            chart1.ChartAreas[0].AxisY.Interval = 50;
            chart1.ChartAreas[0].AxisY.MajorTickMark.LineWidth = 0;
            chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = Color.DarkGray;

            // X軸設定
            chart1.ChartAreas[0].AxisX.Minimum = -160;
            chart1.ChartAreas[0].AxisX.Maximum = 160;
            chart1.ChartAreas[0].AxisX.Interval = 20;
            chart1.ChartAreas[0].AxisX.MajorTickMark.LineWidth = 0;
            chart1.ChartAreas[0].AxisX.MajorGrid.LineColor = Color.DarkGray;

        }


引用返信 編集キー/
■95878 / inTopicNo.2)  Re[1]: Form上のChart(グラフコントロール)の初期表示
□投稿者/ Hongliang (1094回)-(2020/10/06(Tue) 16:24:05)
Chartは
「あるChartArea上のSeriesが一切データを持たない場合、そのChartAreaを表示しない」
という仕様のようなので、とりあえず適当なSeriesに
Series変数.Points.Add(new DataPoint() { IsEmpty = true });
のように空のDataPointを1つ追加しておく必要があるようです。

実際のデータを設定するとき、
Series変数.Points.Clear();
などでこの空のデータを消します。
引用返信 編集キー/
■95879 / inTopicNo.3)  Re[2]: Form上のChart(グラフコントロール)の初期表示
□投稿者/ taro (5回)-(2020/10/06(Tue) 16:33:04)
No95878 (Hongliang さん) に返信
> Chartは
> 「あるChartArea上のSeriesが一切データを持たない場合、そのChartAreaを表示しない」
> という仕様のようなので、とりあえず適当なSeriesに
> Series変数.Points.Add(new DataPoint() { IsEmpty = true });
> のように空のDataPointを1つ追加しておく必要があるようです。

ご回答ありがとうございます。
提示くださった方法で対応致しました。

解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ