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

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

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

複数データのchartグラフへの追加

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

■90858 / inTopicNo.1)  複数データのchartグラフへの追加
  
□投稿者/ usushio (17回)-(2019/05/08(Wed) 14:43:24)

分類:[C#] 

Visualstudio2017 Professional C#で開発を行っていります。

csvファイルを複数個読み込みdatasetへ格納をしています。
その後、datasetからグラフとして表示したい項目を選択して、chartにbindを行っているのですが、
データの数値はすべて違う数値なのですが、グラフの形が全て同じ形になってしまいます。

動きとしては、tableを読み込んで必要なデータを参照している感じです。


 if (dataTable.Columns.Contains(checkData))
            {
                for (int tableNumber = 0; tableNumber < dataSet.Tables.Count; tableNumber++)
                {
                    chart1.DataSource = dataSet;
                    chart1.Series.Add(fileNameList[tableNumber]);
                    string columnName = checkData;

                    if (dataSet.Tables[tableNumber].Columns.Contains(checkData))
                    {
                        button2_count++;
                        if (button2_count == 1)
                        {
                            this.Width = 890;
                            this.Height = 580;
                        }

                        for (int i = 1; i < dataSet.Tables[tableNumber].Columns.Count; i++)
                        {
                            chart1.Series[fileNameList[tableNumber]].ChartType = SeriesChartType.Line;
                            chart1.ChartAreas[0].AxisX.MajorGrid.Enabled = false;
                            chart1.ChartAreas[0].AxisX.MinorGrid.Enabled = false;
                            chart1.ChartAreas[0].AxisX.IsMarginVisible = false;

                            chart1.Series[fileNameList[tableNumber]].YValueMembers = columnName;
                        }

                        chart1.DataBind();
                    }
                }

tableを参照してseriseに追加を行う際に、seriesをnewする必要があるのでしょうか。

引用返信 編集キー/
■90861 / inTopicNo.2)  Re[1]: 複数データのchartグラフへの追加
□投稿者/ Hongliang (791回)-(2019/05/08(Wed) 15:49:59)
コードからやりたいことが見えてこないので、直接の回答にはなりませんが。

まずそもそも、ChartにデータソースとしてDataSetを与えた場合、ChartはTables[0]に当たるDataTableしか使いません。他のテーブルを参照されることはできません。
複数のテーブルのデータを統合して表示させたいのであれば、新たにDataTableなどを(動的に)生成して、そこに統合したデータを設定し、それをDataSourceに設定するような手順が必要です。
// あるいは、DataSourceやYValueMembersを使用せず、直接Series.PointsにDataPointをAddしていくか。

なお上記の回答はSystem.Windows.Forms.DataVisualization.Charting.Chartについて確認しましたが、多分WebFormのChartでも同じです。
引用返信 編集キー/
■90910 / inTopicNo.3)  Re[2]: 複数データのchartグラフへの追加
□投稿者/ usushio (18回)-(2019/05/13(Mon) 16:22:31)
No90861 (Hongliang さん) に返信
> コードからやりたいことが見えてこないので、直接の回答にはなりませんが。
>
> まずそもそも、ChartにデータソースとしてDataSetを与えた場合、ChartはTables[0]に当たるDataTableしか使いません。他のテーブルを参照されることはできません。
> 複数のテーブルのデータを統合して表示させたいのであれば、新たにDataTableなどを(動的に)生成して、そこに統合したデータを設定し、それをDataSourceに設定するような手順が必要です。
> // あるいは、DataSourceやYValueMembersを使用せず、直接Series.PointsにDataPointをAddしていくか。
>
> なお上記の回答はSystem.Windows.Forms.DataVisualization.Charting.Chartについて確認しましたが、多分WebFormのChartでも同じです。



お返事遅くなってしまい申し訳ありません。
返答内容を参考に、調整を行いました。
その結果無事目的の動作を行うことができました。

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

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


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

このトピックに書きこむ