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

わんくま同盟

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

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


(過去ログ 93 を表示中)
■55424 / )  DataGridViewの内容を使ってグラフの作成をするには
□投稿者/ daibo (6回)-(2010/12/01(Wed) 14:10:00)

分類:[C#] 

2010/12/02(Thu) 10:37:11 編集(投稿者)
2010/12/01(Wed) 14:18:18 編集(投稿者)
2010/12/01(Wed) 14:18:07 編集(投稿者)
2010/12/01(Wed) 14:11:55 編集(投稿者)

<pre><pre>質問させていただきます。Windows XP VisualStudio C# 2010 Expressを使ってプログラムを作っています。

以前DataGridViewにcsvファイルの内容を表示するにはどのようにすればよいのか質問をし、その点は皆さんのおかげで動作するようにできました。

次にその内容をグラフに描画したいのですが、どの用にcsvファイルの内容を取得して良いのか分かりません。dataGridViewに表示するときに用いたDataTableを使うべきなのか、それとも別によい方法があるのか...私ではどのようにすることがベストなのか分かりません。

そこで皆さんの知識を借りたいと思い、この場に書かせてもらいました。

必要かどうかわからないのですが、DataGridViewにcsvファイルを読み込んだソースコードと、グラフの描画をするソースコードを以下にかきますので、ご指摘等ありましたらよろしくお願いします。

[補足]
csvファイルは365行5列のものでその2列目と4列目の内容でグラフを作成するつもりです。分かりづらくてすいません。


↓csvファイルの内容を表示する部分
public void read_button_Click(object sender, EventArgs e)
        {
            DataSet dataset_sam = new DataSet();
            dataset_sam.Tables.Add("sample");
            dataset_sam.Tables["sample"].Columns.Add("A");
            dataset_sam.Tables["sample"].Columns.Add("B");
            dataset_sam.Tables["sample"].Columns.Add("C");
            dataset_sam.Tables["sample"].Columns.Add("D");
            dataset_sam.Tables["sample"].Columns.Add("E");
            System.IO.StreamReader StreamReader = new System.IO.StreamReader(@"C:\csv.csv", System.Text.Encoding.GetEncoding(932));
            while (StreamReader.Peek() != -1)
            {

                string[] stringBuffer;
                stringBuffer = StreamReader.ReadLine().Split(',');
                //DataSetの作成 
                DataRow row = dataset_sam.Tables["sample"].NewRow();
                for (int counter = 0; counter < row.ItemArray.Length; counter++)
                {
                    row[counter] = stringBuffer[counter];
                }
                dataset_sam.Tables["sample"].Rows.Add(row);
            }
            StreamReader.Close();

            dataGridView1.DataSource = dataset_sam;
            dataGridView1.DataMember = "sample";
        }

↓グラフの描画を行う部分
private void CreateGraph(ZedGraphControl zgc)
        {
            GraphPane myPane = zgc.GraphPane;

            myPane.Title.Text = "My Test Graph\n(For Code Sample)";
            myPane.XAxis.Title.Text = "My X Axis";
            myPane.YAxis.Title.Text = "My Y Axis";

            myPane.XAxis.MajorGrid.IsVisible = true;
            myPane.YAxis.Scale.FontSpec.FontColor = Color.Red;
            myPane.YAxis.Title.FontSpec.FontColor = Color.Red;

            myPane.YAxis.MajorTic.IsOpposite = false;
            myPane.YAxis.MinorTic.IsOpposite = false;

            myPane.YAxis.MajorGrid.IsZeroLine = false;
            myPane.YAxis.Scale.Align = AlignP.Inside;

            myPane.YAxis.Scale.Min = 0;
            myPane.YAxis.Scale.Max = 15;
            myPane.YAxis.Scale.IsVisible = true;
            myPane.Chart.Fill = new Fill(Color.White, Color.LightGray, 45);
            zedGraphControl1.IsShowPointValues = true;

/*            double x, y1, y2;
            PointPairList list1 = new PointPairList();
            PointPairList list2 = new PointPairList();
            for (int i = 0; i < 36; i++)
            {
                x = (double)i + 5;
                y1 = 1.5 + Math.Sin((double)i * 0.2);
                y2 = 3.0 * (1.5 + Math.Sin((double)i * 0.2));
                list1.Add(x, y1);
                list2.Add(x, y2);
            }*/
            LineItem myCurve = myPane.AddCurve("Porsche", list1, Color.Red, SymbolType.Diamond);
            LineItem myCurve2 = myPane.AddCurve("piper", list2, Color.Blue, SymbolType.Circle);
            zgc.AxisChange();
        }</pre></pre>

返信 編集キー/


管理者用

- Child Tree -