0

我有一张图表,里面有 8 个系列。每个系列具有相同的数据速率;这是来自仪器的 75 Hz 样本。我正在显示最近 10 秒的数据,并且一直在更新。

我拥有的一些东西:

定义:

    this.chart1.ChartAreas[0].AxisX.Minimum = 1;
    this.chart1.ChartAreas[0].AxisX.Maximum = 751;
    //this.chart1.Series[0].Lable = "X = (#VALX - 1)/75"; // ineffective, tried various syntax

新数据插入的管理(仅显示一个通道示例):

    ch01_series.Points.AddY(dCh01); // ch01_series is "Series", dCh01 is double
    if(ch01_series.Points.Count > 751)
    {
        ch01_series.Points.RemoveAt(0);
    }

主要问题是我无法弄清楚如何标记我的 X 轴以显示 0-10。

我想看到的是 11 条垂直网格线,标记为“0、1、2、3、4、5、6、7、8、9、10”;现在,图表自我标签并没有给我一个终点,它显示“1、201、401和601”。(写这个我现在正在考虑找到一种方法来控制网格线的数量并将检查。)

关于 (1) 如何根据需要显示我的标签以及 (2) 如何自定义我的网格线以便我可以看到其中的 11 个而不是 MS Chart 选择绘制的 4 个的任何建议。对于初学者,我敢肯定,如果我可以按预期标记 X 轴而不考虑网格线,并且可以删除网格线,我会很好

一些更新:

我想出了如何设置网格线间隔:

    this.chart1.ChartAreas[0].AxisX.MajorGrid.Interval = 75;

并设置 X 轴间隔:

    this.chart1.ChartAreas[0].AxisX.Interval = 75;

剩下的就是如何让自定义标签起作用,或者某种形式的标签显示 0-10 而不是“1、76、151、226、301、376、451、526、601、676 和 751”。公式是 (Xvalue - 1)/75,但标签语法不接受我的尝试。

4

1 回答 1

0

这与MSChart Y 轴和 X 轴标签非常相似

    chart1.Customize += chart1_Customize;

    void chart1_Customize(object sender, EventArgs e)
    {
        foreach (var label in chart1.ChartAreas[0].AxisX.CustomLabels)
        {
            int xval = int.Parse(label.Text); // get the list index
            int xnewLabel = ((xval - 1) / 75); // change the range
            label.Text = xnewLabel.ToString(); // update to new value
        }
    }
于 2013-07-16T19:56:17.427 回答