【问题标题】:Chart control: Design messed Up after clearing and re-adding Y-Values图表控件:清除并重新添加 Y 值后设计混乱
【发布时间】:2014-09-18 14:47:17
【问题描述】:

整天都在为此苦苦挣扎。我在图表上有三个系列,看起来像这样。注意:我使用的是 winforms 控件。

这些值是根据输入的计算添加的。我正在使用此代码将值添加到每个系列。

        this.chart1.Series["green"].Points.AddY(greenvalue);
        this.chart1.Series["totalsaving"].Points.AddY(totalsavingvalue);
        this.chart1.Series["blue"].Points.AddY(bluevalue);

我设置的系列属性是这样的。绿色和总节省都设置为 StackedColumn,蓝色设置为图表类型的列。

然后我有一个重新开始的按钮,它将用户带回输入区域,然后我使用此代码清除重新开始单击时的系列值。

        chart1.Series["totalsaving"].Points.Clear();
        chart1.Series["green"].Points.Clear();
        chart1.Series["blue"].Points.Clear();

使用与上述相同的计算点击来计算和填充系列数据。问题是当我在清除它们后单击计算按钮来计算值时,总节省和绿色消失了。只显示蓝色。

我尝试清除值以便重新计算的方式有问题吗?

【问题讨论】:

  • 您使用的是来自System.Windows.Forms.DataVisualization.Charting 的图表吗?如果是这样,为什么要使用 asp.net-charts 标签?空地看起来非常好;问题必须在设置点的代码中。你能告诉我们相关的部分吗?你用的是SeriesChartType.StackedColumn还是别的什么?
  • 如果有人有在 Visual Studio 中创建图表的经验,他们可能知道答案。你希望我删除那个标签吗?
  • 是的,在 ASP 中有一个不同的控件并且同时拥有两个标签会产生误导。 (或者您可以添加到您正在使用 Winforms 控件的问题..)
  • 好的,谢谢我更新了 OP,显示了清除值后的样子。如果有帮助,我将添加更多代码来显示我如何添加值等。
  • 是的,我认为这是必要的。当然你确定总和绿色的分数不为零..?

标签: c# winforms visual-studio-2010 charts asp.net-charts


【解决方案1】:

好的,从编辑、cmets、我们的聊天和 joim.me 会话中积累了足够的数据来回答问题。

  • 您通过向设计器中的蓝色系列添加额外的数据点来扭曲显示。
  • 此点占用插槽 1,但由于其值 = 0,因此保持不可见。
  • 这会将系列中的下一个点推到插槽 2
  • 清除点后它消失了,显示不再工作。
  • 两列的消失可能是由硬编码宽度引起的。

您可以遵循几条路径:

  • 在添加实际数据之前重新创建 value = 0 的额外点(不推荐)

  • 首先不添加额外点,而是通过使用 Points.AddXY 而不是 Points.AddY 强制每个点进入其插槽,其中 X 是插槽。

  • 不清除点,而是使用 SetValueY 方法更新它们的值。在为所有三个数据点分配新值后,您需要调用 chart1.Invalidate() 以使其显示。

在所有这些属性中最简单的样式,其中一些被深深地隐藏在属性字符串中(!),您甚至可以决定在设计器中添加并设置样式和抛光所有三个点,并且只更新它们的 y 值,如下所示:

   chart1.Series["green"].SetValueY(greenvalue);
   chart1.Series["totalsaving"].SetValueY(totalsavingvalue);
   chart1.Series["blue"].SetValueY(bluevalue);
   chart1.Invalidate();

选择权在你,但无论如何我建议设置适当的 X 值,无论是在代码中还是在设计器中......

【讨论】:

  • 谢谢你。正是我需要的。现在看起来和我想要的完全一样。我将蓝色设置为 x 点 1,将总储蓄和绿色设置为 x 3。这回答了我发布的关于我现在将删除的订单的另一个问题。感谢您的宝贵时间。
猜你喜欢
  • 1970-01-01
  • 2013-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-31
  • 1970-01-01
  • 2017-12-07
  • 2011-12-23
相关资源
最近更新 更多