从 Listarray 获取值并将它们放入 Datarow 以创建图表 C#

Getting values from Listarray and put them in Datarow to create chart C#

我正在从 Listarray 获取值并希望根据这些值创建图表。现在我有两个 Listarrays,它们都有数据。我的要求是第一个 Arraylist 中的数据应该是 Xaxis 值,第二个 Arraylist 中的数据应该是 yaxis values.Please 在这方面帮助我。我的代码如下。

**These are the List arrays.**
List<string> lines = new List<string>();
List<string> lines1 = new List<string>();



    **This is my code but the values are hard code**
        DataSet dataSet = new DataSet();
        DataTable dt = new DataTable();
        dt.Columns.Add("Name", typeof(string));
        dt.Columns.Add("Counter", typeof(int));

        DataRow r1 = dt.NewRow();
        r1[0] = "Demo"; //code should get r1[0] values from listarray 1

        r1[1] = 8;     //code should get r1[1] values from listarray 2 

        dt.Rows.Add(r1);
        DataRow r2 = dt.NewRow();
        r2[0] = "Second";
        r2[1] = 15;
        dt.Rows.Add(r2);
        dataSet.Tables.Add(dt);

        Chart chart1 = new Chart();
        chart1.DataSource = dataSet.Tables[0];

我对我的代码做了一些更改,但它只显示 x 轴值而不显示 y 轴。

        DataSet dataSet = new DataSet();
        DataTable dt = new DataTable();
        dt.Columns.Add("Name", typeof(string));
        dt.Columns.Add("Counter", typeof(int));


        foreach (string str in lines1)
        {
            DataRow r1 = dt.NewRow();   
            // Here you will get an actual instance of a DataRow
            r1["Name"] = str;   // Assign values 
            dt.Rows.Add(r1);            
            //Console.WriteLine(str);
            //Console.ReadKey();
        }

        foreach (string str1 in lines)
        {
            DataRow r2 = dt.NewRow();  
            r2["Counter"] = str1;   // Assign values 
            dt.Rows.Add(r2);             
            //Console.WriteLine(str1);
            //Console.ReadKey();
        }

        //DataRow r1 = dt.NewRow();
        //r1[0] = "Demo";
        //r1[1] = 8;
        //dt.Rows.Add(r1);
        //DataRow r2 = dt.NewRow();
        //r2[0] = "Second";
        //r2[1] = 15;
        //dt.Rows.Add(r2);
        dataSet.Tables.Add(dt);


        Chart chart1 = new Chart();
        chart1.DataSource = dataSet.Tables[0];

See here for a good overview of the many ways 绑定数据到 Chart.

您的代码使用的是第二种方式,但缺少一些东西。

  • 您的 Chart 需要 ChartArea.
  • 您还需要一个Series来显示数据。
  • 你需要告诉 Series 哪个 ColumnsX- 哪个是 Y-Value

有了这些数据绑定就可以工作了:

chart1.ChartAreas.Add("CA1");
Series s = chart1.Series.Add("S1");

s.XValueMember = "Name";
s.YValueMembers = "Counter";

现在应该显示图表了。当您更改 table 数据时,您应该重新绑定:

 chart1.DataBind();

注意许多数据绑定方法的各种差异、优点和缺点!!