首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有矛盾图的表单应用实时数据图

具有矛盾图的表单应用实时数据图
EN

Stack Overflow用户
提问于 2016-03-09 06:50:07
回答 1查看 2K关注 0票数 1

我在表单应用程序中处理实时数据。我的数据将是实时工作,它将幻灯片作为示波器波。

我怎么能这么做?我只是在库文档中看到了Wpf示例,但是我必须使用表单应用程序。

我是催产素公司的新手。抱歉,如果我错了

另外,我可以使用另一个图形库,如果你建议。

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-30 19:59:31

我假设您正在使用Visual创建一个WinForms应用程序。如果是这样的话,我将使用工具箱中数据下的图表工具,而不是OxyPlot。当您拖动它时,默认情况下名称将是Chart1。它还将有一个通用系列已经添加。以下函数将生成一条平滑的曲线:

代码语言:javascript
复制
    private void GenerateCurve()
    {
        chart1.ChartAreas[0].Position.Auto = true;
        chart1.ChartAreas[0].AxisY.Title = "SIN()";
        chart1.ChartAreas[0].AxisX.Title = "Degrees";

        // Set graph limits
        chart1.ChartAreas[0].AxisX.Minimum = 0;
        chart1.ChartAreas[0].AxisX.Maximum = 200;
        chart1.ChartAreas[0].AxisX.MajorGrid.Enabled = false;
        chart1.ChartAreas[0].AxisX.IntervalAutoMode = System.Windows.Forms.DataVisualization.Charting.IntervalAutoMode.FixedCount;
        chart1.ChartAreas[0].AxisX.Interval = 90;
        chart1.ChartAreas[0].AxisX.MinorTickMark.Enabled = true;
        chart1.ChartAreas[0].AxisX.MinorTickMark.Interval = 10;

        chart1.ChartAreas[0].AxisY.Minimum = -1;
        chart1.ChartAreas[0].AxisY.Maximum = 1;
        chart1.ChartAreas[0].AxisY.MajorGrid.Enabled = false;
        chart1.ChartAreas[0].AxisY.IntervalAutoMode = System.Windows.Forms.DataVisualization.Charting.IntervalAutoMode.FixedCount;
        chart1.ChartAreas[0].AxisY.Interval = .1;
        chart1.ChartAreas[0].AxisY.MinorTickMark.Enabled = true;

        // Set spline instead of line
        chart1.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;

        // Generate points
        for (int x = 0; x < 1000; x++)
        {
            double y = Math.Sin(x);
            chart1.Series[0].Points.AddXY((double)x, Math.Sin(x));
            if (chart1.Series[0].Points.Count > 100)
            {
                chart1.Series[0].Points.RemoveAt(0);
                chart1.ChartAreas[0].AxisX.Minimum = chart1.Series[0].Points[0].XValue;
                chart1.ChartAreas[0].AxisX.Maximum = x;
                Application.DoEvents();
                System.Threading.Thread.Sleep(100);
            }
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35884834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档