【问题标题】:MSChart ControlMSChart 控件
【发布时间】:2023-03-12 11:54:01
【问题描述】:

我的 Windows 窗体中有一个 MSCHart 控件,用 C# 编码。我有一组数据来填充图表。我需要对这些执行以下操作:

  1. 让图表以 10 秒的帧显示,基本上我的数据总计大约 15 分钟或更长时间,但我希望我的图表以 10 秒的比例显示 X 轴。

    李>
  2. 我需要在我的图表底部实现一个滚动条,以便我可以单击它来显示下一个 10 秒帧。这将开始显示前 10 秒帧,然后是下一个帧,例如(10 - 20、20 - 30 等)

  3. 在每 10 秒的帧中,我需要从我的数组中绘制 170 个数据项。然后接下来的 10 秒帧显示接下来的 170 个数据项,这将持续到最后。

这是我到目前为止所做的一个片段

#region SetupChart()
    public bool SetupChart()
    {
        try
        {
            this.view.chart.ChartAreas[0].AxisX.ScaleView.Size = 10;
            return true;
        }
        catch { return false; }

    }
    #endregion

    #region Draw()
    public bool Draw()
    {
        try
        {
            view.Data = this.dllCall.GetData(1);

            int startSecond = 0;
            foreach (Int16 item in view.Data)
            {

                //this.view.chart.Series["MySeries"].Points.AddXY(startSecond, item);

                    this.view.chart.Series["MySeries"].Points.Add(item);
        startSecond++;

            }
            return true;
        }
        catch (Exception ex)
        {
            this.ErrorMessage = ex.Message;
            return false;
        }
    }

【问题讨论】:

    标签: c# mschart


    【解决方案1】:

    这是一段时间以前,因为我使用此图表。但图表能够缩放和填充。所以我会将整个数据放入图表中,然后缩放到十秒帧,最后填充到我需要的位置。

    缩放通常会自动为您提供滚动条。因此,无需为此功能对自己做任何事情。

    【讨论】:

    • 听起来不错,试试吧,但你知道我如何将 170 个样本从我的数组中绘制到每 10 秒帧中吗?
    • 要可视化图表中的某个点,您通常需要两个坐标 (x,y)。 Y 是值。要获得 X,只需将 10 除以 170 即可得到步长。没有在 stepSize * 1 处放置样本 x1,在 stepSize * 2 处放置 x2 等。
    • 嘿,我必须重新发布这个问题,因为我输入了错误的电子邮件地址,但您能否提供您的方法的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    相关资源
    最近更新 更多