winform Chart波形图数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了winform Chart波形图数据?相关的知识,希望对你有一定的参考价值。

最近在做上位机读取电流,电压,频率等数据然后将数据显示成波形图,比如原始数据 List<int> voltages = 223,245,218,226,230,242,219;我现在是把数据直接用Spline显示曲线图,Chart.Series["母线电压"].Points.DataBindY(voltages);请问这样就是波形图了么? 还是说需要将List中的数据转换再用Spline显示出来才叫波形图 (某博客上说的【波形图,是取正玄值,并放大50倍,然后上移50】)

首先在窗口拖拉一个Chart控件,然后再对应的按钮事件里面写下面的代码:
System.Windows.Forms.DataVisualization.Charting.Series series1 = this.chart1.Series[0];
series1.ChartArea = "ChartArea1";
series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;//设置成波浪线
series1.Legend = "Legend1";
series1.Name = "母线电压";
series1.Color = Color.Red;//设置线条为红色
chart1.ChartAreas[0].AxisX.MajorGrid.LineColor = Color.Gainsboro;//设置网格线竖线成灰色
chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = Color.Gainsboro;//设置网格线横线成灰色
List<int> voltages =new List<int> 223, 245, 218, 226, 230, 242, 219 ;//数组
chart1.Series["母线电压"].Points.DataBindY(voltages);

//取5的倍数代码
List<int> voltages = new List<int> 13, 15, 19 ;
List<int> voltages1 = new List<int>();
foreach (int i in voltages)

voltages1.Add(Convert.ToInt32(i / 5)*5);
追问

OK,还有个问题就是 取整数类似四舍五入 ,比如两组数据 13,15,19 转为 10,15,15, 21,25,26 转为 25,25,30,全部转为5的倍数该怎么计算?

参考技术A 是不是波形图 你说了不算? 我觉得是波形图

Winform(C#)中Chart控件鼠标点击显示波形上相应点对应坐标轴的x,y值

方法一:鼠标点击波形

鼠标点击波形,显示点击位置的x,y值

private void chart1_MouseClick(object sender, MouseEventArgs e)  //chart1是你建的chart控件,实际名字根据你自己代码里的命名
                    
            HitTestResult hit = chart1.HitTest(e.X, e.Y);
            if (hit.Series != null)
           
                var xValue = hit.Series.Points[hit.PointIndex].XValue;
                var yValue = hit.Series.Points[hit.PointIndex].YValues.First();
                textBox1.Text = string.Format("0:F0,1:F0", "x:"+xValue, "y:"+yValue);//textbox1也是自己建的一个专门用来显示的内容框,也可以用messagebox直接弹出内容
           
            else
           
                textBox1.Text="未点击到波形曲线";
           
       

 

调用方法:

chart1.MouseClick += new MouseEventHandler(chart1_MouseClick);

 

方法二:鼠标移动到相应点位自动显示相关数值

private void chart1_MouseMove(object sender, MouseEventArgs e)
       
            var area = chart1.ChartAreas[0];

            double xValue = area.AxisX.PixelPositionToValue(e.X);
            double yValue = area.AxisY.PixelPositionToValue(e.Y);
            textBox1.Text = string.Format("0:F0,1:F0", xValue, yValue);
       

调用方法:

chart1.MouseMove += new MouseEventHandler(chart1_MouseMove);

以上是关于winform Chart波形图数据?的主要内容,如果未能解决你的问题,请参考以下文章

c#winform怎么做月收入柱状图

winform chart图表显示具体数字

如何在C#里面描绘图片中那种波形?还有如何添加圆形可调节控件呢?

C#/.net/Winform的chart控件新手求助,如何让坐标轴始终以固定比例显示柱状图?如图

C#winform如何讲主界面的多个Chart控件图保存为一幅?

winform中使用chart绘制柱状图,没法显示图表 方法如下: