c# - 图表控件数据系列

标签 c# winforms graph charts microsoft-chart-controls

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

我将 series1 1st 和 series2 添加到同一图表区域。 然后我使用下面的代码绘制系列 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;

我面临的问题是 list2 仅包含 2015 年 12 月之前的数据,而 list1 包含 2016 年 12 月之前的数据,但是当绘制图表时,图表中的两条线都延伸到 2016 年 12 月,尽管 list2 直到 12 月才包含数据-2016.我该如何解决?

最佳答案

我试着模拟你的问题。我添加了两个数据系列,一个有 3 分,一个有 2 分。图表正确呈现。这让我觉得您必须在绑定(bind)数据之前对数据进行处理。

enter image description here

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;

关于c# - 图表控件数据系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20673835/

相关文章:

javascript - 使用Canviz在HTML页面中绘制图表

Java 绘图生成器

c# 是否可以创建这样的委托(delegate)?

c# - 无法使用 Unity 解析的类型 [MVC 5]

javascript - 剑道 UI 网格 : I lose pagination after datasource refresh

.net - 为什么在关闭带有 WebBrowser 控件的窗体时出现 RaceOnRCWCleanup 错误?

javascript - Cytoscape.js 以编程方式将节点设置为事件状态

c# - Webservice IIS 和权限 401 错误

c# - 为多个对象使用事件处理程序

c# - 优化 Windows 窗体加载时间