Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 图表控制数据系列_C#_Winforms_Graph_Charts_Microsoft Chart Controls - Fatal编程技术网

C# 图表控制数据系列

C# 图表控制数据系列,c#,winforms,graph,charts,microsoft-chart-controls,C#,Winforms,Graph,Charts,Microsoft Chart Controls,我有一个图表控件。我沿y轴绘制价格,沿x轴绘制月-年 我先将序列1添加到同一图表区,然后再将序列2添加到同一图表区。 然后,我使用下面的代码绘制系列1和系列2的点 curveChart.Series.Add("Series1"); curveChart.Series["Series1"].XValueType = ChartValueType.DateTime; curveChart.Series["Series1"].Points.DataBind(list1, "MonthYear", "P

我有一个图表控件。我沿y轴绘制价格,沿x轴绘制月-年

我先将序列1添加到同一图表区,然后再将序列2添加到同一图表区。 然后,我使用下面的代码绘制系列1和系列2的点

curveChart.Series.Add("Series1");
curveChart.Series["Series1"].XValueType = ChartValueType.DateTime;
curveChart.Series["Series1"].Points.DataBind(list1, "MonthYear", "PriceValue", null);
curveChart.Series["Series1"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
curveChart.Series["Series1"].BorderWidth = 3;
curveChart.ChartAreas["0"].AxisX.Interval = 1;

curveChart.Series.Add("Series2");
curveChart.Series["Series2"].XValueType = ChartValueType.DateTime;
curveChart.Series["Series2"].Points.DataBind(list2, "MonthYear", "PriceValue", null);
curveChart.Series["Series2"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
curveChart.Series["Series2"].BorderWidth = 3;
curveChart.ChartAreas["0"].AxisX.Interval = 1;

我面临的问题是,列表2只包含2015年12月之前的数据,而列表1包含2016年12月之前的数据,但当绘制图表时,图表中的两条线都延伸到2016年12月,尽管列表2在2016年12月之前没有数据。我如何解决这个问题?

我试图模拟您的问题。我添加了两个数据系列,一个有3个点,一个有2个点。图表显示正确。这让我认为,在绑定数据之前,必须对数据进行按摩

curveChart.Series.Clear();
curveChart.Series.Add("Series1");
curveChart.Series["Series1"].XValueType = ChartValueType.DateTime;
curveChart.Series["Series1"].Points.AddXY(DateTime.Now, 12.00m);
curveChart.Series["Series1"].Points.AddXY(DateTime.Now.AddDays(1), 13m);
curveChart.Series["Series1"].Points.AddXY(DateTime.Now.AddDays(2), 8m);
curveChart.Series["Series1"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
curveChart.Series["Series1"].BorderWidth = 3;
curveChart.ChartAreas["0"].AxisX.Interval = 1;

curveChart.Series.Add("Series2");
curveChart.Series["Series2"].XValueType = ChartValueType.DateTime;
curveChart.Series["Series2"].Points.AddXY(DateTime.Now, 5.00m);
curveChart.Series["Series2"].Points.AddXY(DateTime.Now.AddDays(1), 7m);          
curveChart.Series["Series2"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
curveChart.Series["Series2"].BorderWidth = 3;
curveChart.ChartAreas["0"].AxisX.Interval = 1;


现在发生了什么?如果缺少数据点,您希望发生什么?列表2不包含2016年1月至2016年12月的数据,但列表1包含2016年12月之前的数据。到目前为止,这两个图都绘制到2016年12月,尽管列表2不包含该数据。我希望如果该图只能为列表2中的可用数据点绘制,我尝试使用curveChart.DataManipulator.IsEmptyPointIgnored=true;但它仍然不起作用