C# 图表控制:清除并重新添加Y值后设计混乱

C# 图表控制:清除并重新添加Y值后设计混乱,c#,winforms,visual-studio-2010,charts,asp.net-charts,C#,Winforms,Visual Studio 2010,Charts,Asp.net Charts,这一天我一直在努力解决这个问题。图表上有三个系列,看起来像这样。注意:我正在使用winforms控件 正在根据输入的计算结果添加这些值。我使用这段代码将值添加到每个系列中 this.chart1.Series["green"].Points.AddY(greenvalue); this.chart1.Series["totalsaving"].Points.AddY(totalsavingvalue); this.chart1.Series["bl

这一天我一直在努力解决这个问题。图表上有三个系列,看起来像这样。注意:我正在使用winforms控件

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

        this.chart1.Series["green"].Points.AddY(greenvalue);
        this.chart1.Series["totalsaving"].Points.AddY(totalsavingvalue);
        this.chart1.Series["blue"].Points.AddY(bluevalue);
我设置的系列属性如下所示。对于图表类型,绿色和TotalSaved都设置为StackedColumn,蓝色设置为Column

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

        chart1.Series["totalsaving"].Points.Clear();
        chart1.Series["green"].Points.Clear();
        chart1.Series["blue"].Points.Clear();
如上所述,使用相同的计算单击来计算和填充序列数据。问题是,当我在清除这些值后单击“计算”按钮来计算这些值时,总节省量和绿色值都丢失了。只显示蓝色


我试图清除值以便重新计算的方式是否有问题?

好的,从编辑、评论、聊天和joim.me会话中积累了足够的数据来回答这个问题

  • 通过向设计器中的蓝色系列添加额外的数据点,扭曲了显示
  • 该点占据插槽1,但由于其值为0,因此不可见
  • 这会将序列中的下一个点推送到插槽2
  • 清除这些点后,它消失了,显示器不再工作
  • 这两列的消失可能是由硬编码宽度造成的
您可以遵循以下几种路径:

  • 在添加真实数据之前重新创建值为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值,无论是在代码中还是在设计中。

您是否使用
System.Windows.Forms.DataVisualization.Charting中的图表?如果是这样的话,为什么要使用
asp.net图表
标记?空地看起来很好;问题一定出在设定点的代码中。你能给我们看看相关的零件吗?您使用的是
系列ChartType.StackedColumn
还是其他什么?如果有人有在visual studio中创建图表的经验,他们可能知道答案。您希望我删除该标记吗?是的,ASP中有一个不同的控件,两个标记都有误导性。(或者您可以添加到您正在使用Winforms控件的问题中…)好的,谢谢,我更新了OP,显示了清除值后的外观。如果有帮助的话,我会添加更多代码来显示我是如何添加值的。是的,我认为这是必要的。当然,您确定total和green的分数不是零..?谢谢您。正是我需要的。它现在看起来和我想要的一模一样。我将蓝色设置为x点1,将总节省和绿色设置为x 3。这回答了我发布的关于订单的另一个问题,我现在将删除该订单。谢谢你抽出时间。