page contents

C#控件ZedGraph使用小结

本文讲述了C#控件ZedGraph使用小结!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

attachments-2022-06-nGcnouOQ62ad316e15ecd.png

本文讲述了C#控件ZedGraph使用小结!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

毕业设计需要设计可以实时显示数据曲线的上位机,于是学习了ZedGraph控件的使用,对用到的属性进行记录。
0、变量声明

1
2
3
4
ZedGraphControl zgc;
GraphPane panel = zgc.GraphPane;
PointPairList listAmp = new PointPairList();
LineItem cureAmp = panel.AddCurve("Amplitude", listAmp, Color.Red, SymbolType.Square);

1、设置字体样式时避免出现边框
会出现边框的写法:

1
2
FontSpec myFont = new FontSpec(“Arial”, 16, Color.Black, true, false, false);
panel.Title.FontSpec = myFont;

不会出现边框的写法:

1
2
3
panel.Title.FontSpec.Family = "Arial";
panel.Title.FontSpec.Size = 16;
panel.Title.FontSpec.IsBold = true;

2、鼠标拖动曲线图
第一种是按住shift键后拖动

1
zgc.PanModifierKeys = Keys.Shift;

第二种是直接鼠标拖动

1
zgc.PanModifierKeys = Keys.None;

3、曲线图上下左右移动控制

1
2
zgc.IsEnableHPan = false; // 鼠标拖动时禁止横向移动
zgc.IsEnableVPan = false; // 鼠标拖动时禁止纵向移动

4、设置缩放比例与鼠标滚轮步骤大小关系

1
2
zedGraphControl1.ZoomStepFraction = 0; // 比例为0,即禁用鼠标滚轮的缩放功能
zedGraphControl1.ZoomStepFraction = 0.1; // 比例越大,缩放越灵敏

5、禁用右键菜单
右键菜单还挺好用的,我没有禁用过。

1
zgc.IsShowContextMenu = false;

6、不显示上方x轴
其中MajorTic指大刻度,MinorTic指小刻度。

1
2
zgc.GraphPane.XAxis.MajorTic.IsOpposite = false;
zgc.GraphPane.XAxis.MinorTic.IsOpposite = false;

7、显示网格并设置网格线参数

1
2
3
4
5
6
zgc.GraphPane.XAxis.MajorGrid.IsVisible = true; // 显示大刻度对应的网格
zgc.GraphPane.XAxis.MinorGrid.IsVisible = true; // 显示小刻度对应的网格

panel.XAxis.MajorGrid.DashOn = 5f;  // 网格为虚线,这句话是设置虚线中的实线部分长度
panel.XAxis.MajorGrid.DashOff = 2f; // 设置虚线中的空白部分长度
panel.XAxis.MajorGrid.PenWidth = 1.5f;  // 设置虚线线宽

8、横纵轴缩放控制

1
2
zgc.IsEnableVZoom = false;  // 纵轴不缩放,默认为true,即可缩放
zgc.IsEnableHZoom = false;  // 横轴不缩放

9、纵轴刻度的十次幂显示控制
当放大得很大时,纵轴刻度会用十次幂表示。但是我赋值false后仍然显示十次幂,这个我暂时没有找到原因。

1
zgc.GraphPane.YAxis.Scale.IsUseTenPower = false;    // 不用十次幂

10、刻度线显示控制
以左边的纵坐标轴为例。画一根竖直的线,再画一根水平的线。outside指的是位于竖线左边的横线,inside指位于竖线右边的横线,但是crossinside和crossoutside是什么我还没想明白。我习惯把大刻度的crossinside和crossoutside都关了,把小刻度的outside和inside都关了。这样刻度线看起来比较清爽。

1
2
3
4
panel.YAxis.MajorTic.IsCrossInside = false;
panel.YAxis.MajorTic.IsCrossOutside = false;
panel.YAxis.MinorTic.IsInside = false;
panel.YAxis.MinorTic.IsOutside = false;

11、坐标轴起点
但是放大时并不是固定这个起点不动。

1
panel.XAxis.Scale.BaseTic = 0;  // 横坐标轴的起点从零开始

12、大小刻度步长设置
大刻度是100一个单位,小刻度是20一个单位,这样的话相邻两根大刻度线之间有4根小刻度线。

1
2
panel.XAxis.Scale.MinorStep = 20;
panel.XAxis.Scale.MajorStep = 100;

13、最大最小刻度设置
很多情况下并不知道最大刻度应该是多少。所以可以选择自动匹配。还有一个MaxGrace,不知道跟Max的区别是什么。

1
2
3
panel.YAxis.Scale.Max = 3100;
panel.YAxis.Scale.Min = 0;
panel.YAxis.Scale.MaxAuto = true; // 根据数据自动匹配纵坐标轴的最大值

14、除数据区域外的图填充

1
panel.Fill = new Fill(Color.White, Color.LightGray, 45.0f); // 从左上角45.0°开始,从白色过渡到浅灰色

15、鼠标移动到曲线上某个数据点时显示数据点的坐标

1
zgc.IsShowPointValues = true;

16、鼠标移动到曲线上任何位置时显示该位置的坐标

1
zgc.IsShowCursorValues = true;

17、显示滚动条
区域放大后可以用滚动条浏览其他区域的数据。但是滚动条只能拉动一次,拉一次后就消失了,暂时没有找到原因。

1
2
zgc.IsShowHScrollBar = true;
zgc.IsShowVScrollBar = true;

18、以鼠标所在位置为中心进行放大
默认是以图形中心进行放大。

1
zgc.IsZoomOnMouseCenter = true;

19、修改曲线图例位置

1
panel.Legend.Position = ZedGraph.LegendPos.Top;

20、修改曲线图例字体

1
2
panel.Legend.FontSpec.Family = "Arial";
panel.Legend.FontSpec.Size = 14;

21、修改曲线粗细

1
cureAmp.Line.Width = 1.5f;

22、填充曲线数据点的图形

1
cureAmp.Symbol.Fill = new Fill(Color.Red);

23、关联曲线到纵坐标轴
当两条曲线各自使用不同刻度的纵坐标轴时,需要把曲线跟相应的坐标轴关联起来。

1
cureAmp.IsY2Axis = true; // 关联cureAmp曲线到右边的纵坐标轴

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

  • 发表于 2022-06-18 09:59
  • 阅读 ( 1103 )
  • 分类:C/C++开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1474 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章