在ZedGraph中更改轴类型

时间:2012-03-30 23:10:29

标签: c# zedgraph

我有连续心跳的时间数据(以毫秒为单位),我正在尝试制作动态图表。因此,在XAxis上,我的XDate变量增加了.AddMilliseconds(heart_beat_time)和YAxis heart_beat_time

当我使用AxisType.Date时,它非常好。我可以更改MinMax和其他相关值,但当我更改为AxisType.DateAsOrdinal时,我无法看到点或标签。在一些调试过程中,它已经显示Zedgraph确实绘制了点和标签,但是连续的之间存在很大的差距。

如何控制DateAsOrdinal Min,Max,MajorStep等?有一个答案Format DateAsOrdinal xAxis labels in ZedGraph,但它对我不起作用。

我想让它发挥作用有两个原因:

  1. Ordinal似乎更快(因为我得到了近10万分)

  2. 当我自动滚动图表时,AxisType.Date显示标记下的标签

  3. 我的代码:

    myPane.XAxis.Type = AxisType.DateAsOrdinal;
    myPane.XAxis.Scale.MajorStepAuto = false;
    myPane.XAxis.Scale.MinorStepAuto = false;
    myPane.XAxis.Scale.MajorUnit = DateUnit.Minute;
    myPane.XAxis.Scale.MinorUnit = DateUnit.Minute;
    myPane.XAxis.Scale.Format = "HH:mm:ss";
    myPane.XAxis.Scale.Min = Min;
    myPane.XAxis.Scale.Max = Max;
    myPane.XAxis.Scale.MinorStep = minor;
    myPane.XAxis.Scale.MajorStep = major;
    myPane.XAxis.Scale.BaseTic = new XDate(1999, 1, 1, 0, 0, 0, 0);
    myPane.YAxis.Scale.Min = min_rr;
    myPane.YAxis.Scale.Max = max_rr;
    

    ,其中

    int min_rr = 100;
    int max_rr = 2500;
    XDate Min = new XDate(1999, 1, 1, 0, 0, 0, 0);
    XDate Max = new XDate(1999, 1, 1, 1, 0, 0, 0);
    int minor = 5;
    int major = 10;
    

1 个答案:

答案 0 :(得分:0)

使用AxisType.DateAsOrdinal时,我遇到同样的问题(XAxis上没有图表或标签)。

我通过省略代码行myPane.XAxis.Scale.Min=???Max=???来解决问题。 这给了我一个没有间隙的漂亮图表。

但是现在我的MousePositionValues中的MouseMoveEvent功能出现了问题。