我有兩個數據系列。第一個系列被命名爲「DHA」,第二個系列是「NNC」。 DHA的數據比NNC的短(如圖所示)。如何繪製兩個數據長度不同的系列
當我使用C#在同一個圖表(Microsoft圖表)上繪製它們時。如果繪圖屬實,DHA系列必須由於滯後的DHA數據點而轉移至NNC。
但是,圖片顯示他們兩人同時出現! 問題1:這裏有什麼問題? 問題2:如何在X軸上的特定點繪製每個系列?
1)數據:
string[] DHAX = new string[] {
"2015-06-01", "2015-06-02", "2015-06-03", "2015-06-04", "2015-06-05", "2015-06-08", "2015-06-09", "2015-06-10", "2015-06-11", "2015-06-15",
"2015-06-16", "2015-06-17", "2015-06-18", "2015-06-19", "2015-06-22", "2015-06-23", "2015-06-24", "2015-06-25", "2015-06-26", "2015-06-29",
"2015-06-30", "2015-07-01", "2015-07-02", "2015-07-03", "2015-07-06", "2015-07-07", "2015-07-08", "2015-07-09", "2015-07-10", "2015-07-13",
"2015-07-14", "2015-07-15", "2015-07-16", "2015-07-17", "2015-07-20", "2015-07-21", "2015-07-22", "2015-07-23", "2015-07-24", "2015-07-27",
"2015-07-28", "2015-07-29", "2015-07-30", "2015-07-31", "2015-08-03", "2015-08-04", "2015-08-05", "2015-08-06", "2015-08-07", "2015-08-10",
"2015-08-11", "2015-08-12", "2015-08-13", "2015-08-14", "2015-08-17", "2015-08-18", "2015-08-19", "2015-08-20", "2015-08-21", "2015-08-24",
"2015-08-25", "2015-08-26", "2015-08-27", "2015-08-28", "2015-08-31", "2015-09-01", "2015-09-07", "2015-09-08", "2015-09-09", "2015-09-10",
"2015-09-11", "2015-09-14", "2015-09-15", "2015-09-16", "2015-09-17", "2015-09-18", "2015-09-21", "2015-09-22", "2015-09-23", "2015-09-24",
"2015-09-25", "2015-09-28", "2015-09-29", "2015-09-30", "2015-10-01", "2015-10-02", "2015-10-05", "2015-10-06", "2015-10-07", "2015-10-08",
"2015-10-09", "2015-10-12", "2015-10-13", "2015-10-14", "2015-10-15", "2015-10-16", "2015-10-19", "2015-10-20", "2015-10-21", "2015-10-22",
"2015-10-23", "2015-10-26", "2015-10-27" };
double[] DHAY = new double[] {
17.9, 17.9, 17.6, 17.6, 17.7, 17.5, 17.5, 17.5, 17.4, 17.5, 17.5, 17.5, 17.4, 17.4, 17.2, 17.1, 17.2, 17.1, 17.2, 17.3, 17.1, 17.1,
17.1, 17.3, 17.3, 17.6, 17.6, 17.7, 18.8, 18.8, 18.4, 17.9, 18 , 17.9, 18 , 18.4, 18 , 18.2, 18.2, 18.1, 17.7, 18 , 17.8, 17.8,
17.8, 17.8, 18.3, 18.3, 18.2, 18.3, 18.2, 18.1, 18 , 18.1, 18.1, 18 , 18 , 17.8, 17.8, 17.2, 17.3, 17.7, 17.4, 17.7, 17.6, 17.9,
17 , 17 , 17 , 17 , 17 , 17 , 17 , 17 , 17.2, 17.3, 17.2, 17.2, 17 , 17 , 17 , 17.2, 17 , 17.1, 17.8, 18.7, 18.2, 18.7,
18.1, 18.1, 17.9, 17.7, 18.5, 18.5, 18.1, 17.8, 17.9, 17.9, 17.9, 18.1, 18.1, 17.9, 17.8 };
string[] NNCX = new string[] {
"2015-05-25", "2015-05-26", "2015-05-27", "2015-05-28", "2015-05-29", "2015-06-01", "2015-06-02", "2015-06-03", "2015-06-04", "2015-06-05",
"2015-06-08", "2015-06-09", "2015-06-10", "2015-06-11", "2015-06-15", "2015-06-16", "2015-06-17", "2015-06-18", "2015-06-19", "2015-06-22",
"2015-06-23", "2015-06-24", "2015-06-25", "2015-06-26", "2015-06-29", "2015-06-30", "2015-07-01", "2015-07-02", "2015-07-03", "2015-07-06",
"2015-07-07", "2015-07-08", "2015-07-09", "2015-07-10", "2015-07-13", "2015-07-14", "2015-07-15", "2015-07-16", "2015-07-17", "2015-07-20",
"2015-07-21", "2015-07-22", "2015-07-23", "2015-07-24", "2015-07-27", "2015-07-28", "2015-07-29", "2015-07-30", "2015-07-31", "2015-08-03",
"2015-08-04", "2015-08-05", "2015-08-06", "2015-08-07", "2015-08-10", "2015-08-11", "2015-08-12", "2015-08-13", "2015-08-14", "2015-08-17",
"2015-08-18", "2015-08-19", "2015-08-20", "2015-08-21", "2015-08-24", "2015-08-25", "2015-08-26", "2015-08-27", "2015-08-28", "2015-08-31",
"2015-09-01", "2015-09-07", "2015-09-08", "2015-09-09", "2015-09-10", "2015-09-11", "2015-09-14", "2015-09-15", "2015-09-16", "2015-09-17",
"2015-09-18", "2015-09-21", "2015-09-22", "2015-09-23", "2015-09-24", "2015-09-25", "2015-09-28", "2015-09-29", "2015-09-30", "2015-10-01",
"2015-10-02", "2015-10-05", "2015-10-06", "2015-10-07", "2015-10-08", "2015-10-09", "2015-10-12", "2015-10-13", "2015-10-14", "2015-10-15",
"2015-10-16", "2015-10-19", "2015-10-20", "2015-10-21", "2015-10-22", "2015-10-23", "2015-10-26", "2015-10-27" };
double[] NNCY = new double[] {
50.5, 50.5, 51, 51, 51, 50.5, 51, 50.5, 50.5, 49.5, 50.5, 51, 51, 51, 50.5, 49.7, 51, 51, 51, 51, 50.5, 50.5, 49.6, 50.5, 50.5, 50.5, 50,
50.5, 51, 50.5, 50.5, 50.5, 50, 50, 51, 50, 50, 50, 50, 51, 50.5, 54, 53, 52.5, 51, 51, 50.5, 51, 52.5, 51.5, 51.5, 51.5, 51.5, 52, 52, 52,
49.3, 48.7, 48, 48, 48.1, 49.4, 49.4, 48.6, 47.8, 48.1, 51, 50, 48, 49.9, 49.1, 50.5, 51, 49.8, 49.8, 49.8, 51, 50, 50.5, 51.5, 51.5, 51.5,
51, 51.5, 50.5, 51.5, 51.5, 51.5, 51.5, 51, 51.5, 52, 51, 51, 51, 51, 50.5, 51.5, 51, 51.5, 50.5, 50.5, 51.5, 54, 55, 55, 53.5, 54.5 };
2)繪製在圖表上的數據:
private void button1_Click(object sender, EventArgs e)
{
chart1.Series.Clear();
chart1.Legends.Clear();
chart1.Legends.Add(new Legend("Cross"));
chart1.ChartAreas[0].AxisX.IntervalAutoMode = IntervalAutoMode.VariableCount;
chart1.ChartAreas[0].AxisX.IsLabelAutoFit = true;
chart1.ChartAreas[0].AxisX.MinorGrid.Enabled = false;
chart1.ChartAreas[0].AxisX.MajorGrid.Enabled = false;
chart1.ChartAreas[0].AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dash;
//DHA Series
chart1.Series.Add("DHA");
chart1.Series["DHA"].ChartType = SeriesChartType.Line;
chart1.Series["DHA"].XAxisType = AxisType.Primary;
//NNC Series
chart1.Series.Add("NNC");
chart1.Series["NNC"].ChartType = SeriesChartType.Line;
chart1.Series["NNC"].XAxisType = AxisType.Primary;
//Draw DHA
for (int dha = 0; dha < DHAX.Length; dha++)
{
chart1.Series["DHA"].Points.AddXY(DHAX[dha], DHAY[dha]);
}
//Draw NNC
for (int nnc = 0; nnc < NNCX.Length; nnc++)
{
chart1.Series["NNC"].Points.AddXY(NNCX[nnc], NNCY[nnc]);
}
}
爲什麼要標記爲Highcharts?你能告訴我們如何添加數據點嗎?很可能你會將x值添加爲字符串。這總是一個壞主意。 – TaW
我更新了我的代碼。 –
建議之後,我已將所有X值更改爲DateTime,併爲兩個系列設置「XValueType = ChartValueType.DateTime」。結果是OK。感謝您的建議^^ –