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であるはずですが、2番目のシリーズの200は、最初のシリーズと同じように、イタリア(最初のシリーズでは5番目)を参照しています。簡単に言うと、xValueの順序に関係なく、文字列の値に従って2つのシリーズを表示したいと思います。

ちなみに、列の数を制限するにはどうすればよいですか?その制限よりも長い配列でグラフをバインドしたとしても、どうすればよいですか?

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 に答える