【问题标题】:MSCHart X-axis values showing errorMSCHart X 轴值显示错误
【发布时间】:2011-03-19 04:48:55
【问题描述】:

我有一个 MSChart,它包含一系列数据元素

foreach(Int16 element in data)
{
    this.view.chart.Series["Series1"].Points.AddXY((double)i/100, (double) element/41);
}
this.view.chart.ChartAreas[0].AxisX.Mimimum=0;
this.view.chart.ChartAreas[0].AxisX.Interval = 1;
this.view.chart.ChartAreas[0].AxisX.ScaleView.Zoom(0,10);
this.view.chart.ChartAreas[0].AxisX.ScaleView.SmallScrollSize = 10;

这会在 10 秒帧中查看图表,因此应该从 0 到 10,然后从 10 到 20,依此类推。 现在奇怪的是,当我第一次启动图表时,它正确地显示了 0 到 10 时间范围内的数据。但是当我拳头单击向前滚动到下一个 10 秒帧时,它显示 9.994 到 19.994,然后 19.994 到29.994.

现在,如果我一直滚动回到开头(即 0 前 10 位),然后再次向前滚动它就可以了!从 0 - 10、10 - 20、20 - 30 开始,但是当我到达图表的末尾时,又回到了令人讨厌的双精度值(例如 69.994):S

我真的不知道为什么会这样,请谁能帮帮我

PS。这是折线图不是条形图

【问题讨论】:

  • 不知道是否有帮助,但尝试使用yourSeries.XValueType = ChartValueType.Int32
  • 试过了,但同样的事情仍然发生,也感谢你的帮助:)我也尝试使用 RoundAxisValue() 仍然没有区别:(
  • 能否提供工作代码sn-p,因为ChartAreas[0] 没有Minimum 字段
  • 您好,我已经更新了代码,现在应该可以使用了,非常感谢您抽出宝贵的时间,非常感谢您的帮助:)
  • 无法重现您的问题,但尝试不将 (i/100) 转换为 double

标签: c# winforms mschart


【解决方案1】:

您可以使用LabelStyle.Format 来显示标签。

chart1.ChartAreas[0].AxisX.LabelStyle.Format = "{0.0}";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多