【问题标题】:axis object error - The minimum value of the axis is greater than the largest data point value in MS line chart in c#轴对象错误-轴的最小值大于c#中MS折线图中的最大数据点值
【发布时间】:2016-11-09 07:31:10
【问题描述】:

我正在使用 C#.net 开发带有 MS 日期时间线图的 Windows 窗体应用程序。 (x 轴日期时间,y1 轴双精度值,y2 轴双精度值)我需要每 10 秒将数据点(实时数据)添加到图表中。最初图表显示 10 分钟数据。之后,我将删除第一个数据点并最后添加一个数据点(简单地移动)。为此,我正在更改轴最小值最大值。我的应用程序成功运行了一周,之后出现以下错误。

轴对象 - 轴的最小值大于最大数据点值。

这是我的代码示例,

 if (datapointcount >= 600)    
 {           
    chart1.Series[0].Points.RemoveAt(0);                       
    chart1.ChartAreas[0].AxisX.Minimum = DateTime.FromOADate(chart1.Series[0].Points[0].XValue).ToOADate();
    chart1.ChartAreas[0].AxisX.Maximum = DateTime.FromOADate(chart1.Series[0].Points[chart1.Series[0].Points.Count - 1].XValue).AddSeconds(10).ToOADate();
    chart1.ChartAreas[0].RecalculateAxesScale();   
 }

this.chart1.Series[0].Points.AddXY(xval , value1); 
this.chart1.Series[1].Points.AddXY(xval, value2);                   

chart1.Invalidate();    
chart1.Update();

【问题讨论】:

  • 错误信息有什么不清楚的地方??由于您没有显示您如何填写timestamp,因此我们无法提供任何帮助。我建议您从分配中提取用于设置最小值和最大值的值,以便更好地检查它们..
  • 时间戳是使用 ToOADate() 计算的双精度值,它将日期时间值转换为双精度值。
  • 当然。但这是关于实际值!看看他们,你会发现,,,

标签: c# charts


【解决方案1】:
chart1.ChartAreas[0].AxisX.Minimum += 1;
chart1.ChartAreas[0].AxisX.Maximum += 1; 

适用于我的应用程序。我还先添加价值,然后调整比例。

因为 AxisX.Maximum 小于 AxisX.Minimum 而抛出错误

【讨论】:

    【解决方案2】:

    我的问题是我还必须将我的数据转换为 OADate()

    this.chart1.Series[0].Points.AddXY(xval .ToOADate() , value1);

    this.chart1.Series[1].Points.AddXY(xval .ToOADate(), value2);

    【讨论】:

    • 这并不能真正回答问题。如果您有其他问题,可以点击 进行提问。要在此问题有新答案时收到通知,您可以follow this question。一旦你有足够的reputation,你也可以add a bounty 来引起对这个问题的更多关注。 - From Review
    猜你喜欢
    • 2014-10-22
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多