1、ZedGraph.dll 控件下载
链接:下载ZedGraph(ZedGraph.dll 和ZedGraph.Web.dll文件)
打开链接后,图中红框显示的是仅下载zedgraph控件,本文所需的文件是ZedGraph.dll。
2、ZedGraph.dll 控件添加进Visual Studio 软件
打开Visual Studio,创建一个新的windows窗体应用程序项目。
打开form设计器使其出现在当前窗口,如下图:
将下载的 ZedGraph.dll文件放在自己所建项目的 文件中,如图:
添加 ZedGraph.dll 和ZedGraph.Web.dll的引用,在控件库中添加ZedGraph控件:右键点击工具箱 - 选择项 - .Net Framework 组件 - 浏览 - 找到ZedGraph.dll 和ZedGraph.Web.dll添加,随后zedGraphControl 控件就出现在工具箱中如图:
从工具箱中拖出一个 zedGraphControl 控件到form设计器并按照意愿修改其大小和位置。你现在Form中就有了一个ZedGraph控件。如下
3、代码编写
3.1、参数定义
在串口助手开发一开始的函数中,添加定义几个全局可调用的参数
public partial class Form1 : Form
{
GraphPane myPane = new ZedGraph.GraphPane();
PointPairList listTemp = new PointPairList();
PointPairList listThot = new PointPairList();
public double currTemperature = 30;//当前温度
public double Thot = 25;//热端温度
private double x = 0;
3.2、调用初始化函数
在窗口加载事件:添加创建zedgraph图函数
private void Form1_Load(object sender, EventArgs e) //窗口加载事件
{
//其他初始化代码。。。。
//创建zedgraph图,包括初始化,
CreatezedGraph1();
}
3.3、创建zedgraph初始化函数
创建zedgraph图函数:包括初始化,设置图标格式,设置曲线类型等
private void CreatezedGraph1() //创建zedgraph图,包括初始化,
{
zedGraphControl1.GraphPane = myPane; //重命名,方便后面使用
zedGraphControl1.PanModifierKeys = Keys.None; //用户无法通过特定的键组合来平移图表
//设置图表格式
zedGraphControl1.GraphPane.Legend.Position = LegendPos.InsideTopRight; //设置图例显示在图表的右上角区域
myPane.Title.Text = "实时监测曲线";
myPane.YAxis.Title.Text = "温度";
myPane.XAxis.Title.Text = "时间轴";
myPane.CurveList.Clear(); //用于清空 myPane 中存储的曲线列表
myPane.GraphObjList.Clear(); //清空 myPane 中的图形对象列表。图形对象可以包括各种用于绘制图表的元素,例如标记、注释等
// Add gridlines to the plot, and make them gray
myPane.XAxis.MajorGrid.IsVisible = true; //设置 X 轴的主网格线可见。
myPane.YAxis.MajorGrid.IsVisible = true; //设置 Y 轴的主网格线可见。
myPane.XAxis.MinorGrid.IsVisible = true; //设置 X 轴的次网格线可见。
myPane.YAxis.MinorGrid.IsVisible = true; //设置 Y 轴的次网格线可见。
//创建了新的 PointPairList 对象
//PointPairList 通常用于存储包含 X 值和 Y 值的数据点对。
//创建新的实例后,可以向这些列表中添加数据点,以便在后续的图表绘制或数据处理中使用。
listTemp = new PointPairList();
listThot = new PointPairList();
myPane.AddCurve("T1温度", listTemp, Color.Green, SymbolType.None);
myPane.AddCurve("T2温度", listThot, Color.Crimson, SymbolType.None);
timer1.Start();
}
3.4、时钟更新事件函数
时钟触发事件:每过一个时钟间隔,则更新温度图的内容,
private void timer1_Tick(object sender, EventArgs e) //时钟触发事件
{
listTemp.Add(x, currTemperature); //将 x 作为 X 轴的值,currTemperature 作为 Y 轴的值添加到 listTemp 中。
listThot.Add(x, Thot); //将 x 作为 X 轴的值,Thot 作为 Y 轴的值添加到 listThot 中。
x++; //x值增加,是根据时钟触发时间的间隔,如现在时钟间隔是500ms,则图标每0.5秒更新一次数据
zedGraphControl1.AxisChange(); //通知 zedGraphControl1 控件坐标轴的设置发生了更改
zedGraphControl1.Refresh(); //用于刷新 zedGraphControl1 控件的显示,确保用户看到的是最新的图表状态
}
PS:currTemperature,Thot的变量的值,是通过串口助手接收函数得到数据值,再通过其他方法,把接收到的数据值,如温度值,赋值给这两个变量值,赋值后,就可再图中实现显示温度曲线。
4、代码功能增加
4.1、添加曲线
1、在参数定义中:PointPairList list3= new PointPairList();定义第三个PointPairList 对象
2、在初始函数中:创建第三个PointPairList 对象。
创建后,把对象增加到曲线中。
3、在时钟更新函数中:把横纵坐标的变量值,赋值给第三个对象。
4.2、图标格式设置
参考:C#控件ZedGraph使用小结
有代码:
C# ZedGraph Control 控件画 饼图、柱状图、折线图(超级精美,史无前例)
C#上位机中ZedGraph控件的使用
C#图表控件ZedGraph使用
参考:
C#绘制实时控制误差曲线图(利用ZedGraph控件)
ZedGraph控件常用方法和属性总结