从 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
哪个 Columns
是 X-
哪个是 Y-Value
有了这些数据绑定就可以工作了:
chart1.ChartAreas.Add("CA1");
Series s = chart1.Series.Add("S1");
s.XValueMember = "Name";
s.YValueMembers = "Counter";
现在应该显示图表了。当您更改 table 数据时,您应该重新绑定:
chart1.DataBind();
注意许多数据绑定方法的各种差异、优点和缺点!!
我正在从 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
哪个Columns
是X-
哪个是Y-Value
有了这些数据绑定就可以工作了:
chart1.ChartAreas.Add("CA1");
Series s = chart1.Series.Add("S1");
s.XValueMember = "Name";
s.YValueMembers = "Counter";
现在应该显示图表了。当您更改 table 数据时,您应该重新绑定:
chart1.DataBind();
注意许多数据绑定方法的各种差异、优点和缺点!!