4

首先,如果我的英语不是那么好,我很抱歉...

我有 4 个数组(前 2 个用于系列 #1),我想将它们绑定到我的图表:

double[] yValues1 = { 65.62, 75.54, 60.45, 55.73, 70.42, 200 };
string[] xValues1 = { "France", "Canada", "UK", "USA", "Italy", "India" };
chart.Series["Series1"].Points.DataBindXY(xValues1, yValues1);

double[] yValues2 = { 65.62, 75.54, 60.45, 55.73, 200, 70.42 };
string[] xValues2 = { "France", "Canada", "UK", "USA", "India", "Italy"};
chart.Series["Series2"].Points.DataBindXY(xValues2, yValues2);

结果是(观察:意大利和印度的值和顺序):

如您所见,印度应该在两个系列中都有 200,但第二系列的 200 指的是意大利(即第一系列中的第五),就好像它与第一系列一样。简而言之,我希望无论 xValues 的顺序如何,而是根据它们的字符串值显示这两个系列。

顺便说一句,即使我将图表与长度大于限制的数组绑定,我该如何限制列数?

4

2 回答 2

3

要完成此操作,请添加对 AlignDataPointsByAxisLabel 的调用:

Chart.AlignDataPointsByAxisLabel();

这将使所有数据点与相同的轴标签对齐,无论它们绑定的顺序如何。

于 2012-09-07T18:53:09.637 回答
0

xValue 和 yValue 可以添加到 SortedDictionary。这将使值和键保持配对。

chart1.Series.Add("Series1");
chart1.Series.Add("Series2");

SortedDictionary<string, double> sd1 = new SortedDictionary<string, double>();
SortedDictionary<string, double> sd2 = new SortedDictionary<string, double>();
sd1.Add("france", 65.52);
sd2.Add("france", 65.52);
sd1.Add("india", 200);
sd2.Add("italy", 40);
sd1.Add("italy", 50);
sd2.Add("india", 200);

chart1.Series["Series1"].Points.DataBindXY(sd1.Keys, sd1.Values);
chart1.Series["Series2"].Points.DataBindXY(sd2.Keys, sd2.Values);
于 2012-09-05T21:59:56.040 回答