【问题标题】:C# Create Chart with 2 YValuesC# 创建带有 2 个 Y 值的图表
【发布时间】:2014-12-16 09:26:13
【问题描述】:

我想在 Visual Studio 中创建一个具有 1 个 XValue 和 2 个 YValues 的图表(ChartType = Range)。 如何将数据(例如字典)绑定到此图表?

对于所有其他图表(只有 1 个 YValue),我成功使用以下代码将整个字典绑定到图表:

Dictionary<int, int> Dictionary1;
...
chart1.Series["Series1"].Points.DataBindXY(Dictionary1.Keys, Dictionary1.Values);

我尝试将 List 绑定到 YValue,但没有成功(运行时错误:只有以下类型是可能的 Double、Decimal、Single、int、long、uint、ulong、String、DateTime、short、ushort) :

Dictionary<int, List<int>> Dictionary2;
...
chart2.Series["Series2"].Points.DataBindXY(Dictionary2.Keys, Dictionary2.Values);

谢谢,卢克

【问题讨论】:

  • 如何将一个 X 值与 LIST of Y 值联系起来??
  • 我想显示一个“范围”图表,即相同 X 值的“最小 Y 值”和“最大 Y 值”值。

标签: c# visual-studio


【解决方案1】:

您必须通过逗号分隔的两个 y 值:

chart2.Series["Series2"].ChartType = SeriesChartType.Range;
int[] y1 = Dictionary2.Values.Select(y => y[0]).ToArray();
int[] y2 = Dictionary2.Values.Select(y => y[1]).ToArray();
chart2.Series["Series2"].Points.DataBindXY(Dictionary2.Keys, y1, y2);

在之前设置 ChartType 很重要,因为可能的 y 值的数量取决于它。

【讨论】:

  • 非常感谢!完美运行!
  • 我是新来的,所以很遗憾我不能给你的答案打分。也许其他人可以为我做到这一点!?
  • 别介意。我得到了接受的答案的积分。值得被投票并不是那么出色。 :-)
  • 在寻找答案几个小时后,我发现您的答案非常适合我的解决方案。谢谢!
猜你喜欢
  • 2011-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-30
  • 2023-03-10
  • 2016-11-02
  • 2022-08-20
相关资源
最近更新 更多