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#里面描绘图片中那种波形?还有如何添加圆形可调节控件呢?
C#/.net/Winform的chart控件新手求助,如何让坐标轴始终以固定比例显示柱状图?如图