营销型网站定位,网站建设从入门到精通 网盘,做网站公司郑州郑州的网站建设公司排名,怎么做漫画网站文章目录 一、ZedGraph介绍ZedGraph的特点ZedGraph的缺点使用注意事项 二、ZedGraph官网三、ZedGraph的应用四、ZedGraph的高端应用五、、总结 一、ZedGraph介绍
ZedGraph 是一个用于绘制图表和图形的开源.NET图表库。它提供了丰富的功能和灵活性#xff0c;可以用于创建各种… 文章目录 一、ZedGraph介绍ZedGraph的特点ZedGraph的缺点使用注意事项 二、ZedGraph官网三、ZedGraph的应用四、ZedGraph的高端应用五、、总结 一、ZedGraph介绍
ZedGraph 是一个用于绘制图表和图形的开源.NET图表库。它提供了丰富的功能和灵活性可以用于创建各种类型的图表包括折线图、柱状图、饼图等。ZedGraph 支持多种数据源包括数组、数据表和实时数据流同时还提供了丰富的定制选项使用户能够轻松地定制图表的外观和行为。这个库在.NET开发中被广泛应用于数据可视化和报表生成等领域。 ZedGraph.dll的源码库代码
ZedGraph的特点
可以先生成图片后再显示这对一些多用户并发有点帮助。RenderMode.ImageTag可以动态生成不用保存文件可以减少IO的读写消耗。RenderMode.RawImage比较多的呈现方式比如曲线图、柱状图、饼图等。
ZedGraph的缺点
编码的时候在设置属性不方便一点注释都没有不要说是中文的啦就连英文都没有太不方便了。图表的显示比较简陋没有OpenFlashChar来得好看。
使用注意事项
dll文件当前的最新版本是5.1.5我以前也使用过4.3.4的版本这两个版本的差别很大很多属性都已经不存在了面向对象的感念可能加强了不少也清晰了不少因为现在的属性设置都是先实体再属性了而以前就比较混乱了。所以在使用不同的版本的时候要注意这点。在Windows Forms和 ASP.Net Web Form项目中使用是不同。
二、ZedGraph官网 https://sourceforge.net/projects/zedgraph/files/ 官网中可以看到ZedGraph的介绍在文件列可以下载dll文件和使用例子。都是.NET平台下C#语言的可以在VisualStudio中查看代码以及运行代码
三、ZedGraph的应用
1、新建WinForm项目。 2、在官网中下载ZedGraph.dll库文件在项目中引用并添加命名空间。 3、工具箱中添加ZedGraph控件。 4、在Form1中拖入一个ZedGraphControl控件修改name属性为myZedgraph。 5、项目中的代码如下
这是一个简单的 Windows 窗体应用程序使用 ZedGraph 库来绘制速度随时间变化的曲线图。关键步骤如下
1. 初始化图表控件 (InitZedGraph 方法):
在 InitZedGraph方法中首先获取 GraphPane对象然后设置图表的标题、X轴和Y轴的标题。接着使用 PointPairList对象 vlist存储时间和速度的数据点。使用 AddCurve方法创建一条红色的菱形样式曲线并将数据点 vlist绑定到曲线上。设置了一些图表的显示样式如网格线、刻度颜色、背景颜色等。最后调用 AxisChange 方法刷新轴。
2. 定时器刷新曲线 (ChartTimer_Tick 方法):
在 ChartTimer_Tick方法中通过定时器每隔一定时间触发模拟生成随机速度数据并将新的数据点添加到 vlist 中。每次添加新数据后更新时间 time 的值并调用 AxisChange 方法和 Refresh方法刷新曲线。
3. Form1 构造函数:
在构造函数中初始化 ZedGraph 控件并启动定时器每隔一定时间刷新曲线。
4. Form1_Load 方法:
在 Form1_Load 方法中弹出一个消息框显示 “Hello world!”。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ZedGraph;namespace WindowsFormsApp1
{public partial class Form1 : Form{//定时器刷新曲线Timer ChartTimer;//时间int time 30;//记录曲线值PointPairList vlist new PointPairList();public Form1(){InitializeComponent();//初始化ZedGraphInitZedGraph();ChartTimer new Timer(){Interval 300,};ChartTimer.Tick ChartTimer_Tick;ChartTimer.Start();}private void Form1_Load(object sender, EventArgs e){MessageBox.Show(Hello world!);}#region 初始化图表控件private void InitZedGraph(){GraphPane myPane myZedGraph.GraphPane;myPane.IsAlignGrids true;myPane.Title.Text 测试速度;myPane.XAxis.Title.Text 时间;myPane.YAxis.Title.Text 速度;for (int i 0; i 30; i){double time (double)i;double acceleration 2.0;double velocity acceleration * time;vlist.Add(time, velocity);}//生成一条红色的菱形样式曲线将曲线和值vlist绑定//生成速度图例LineItem myCurve myPane.AddCurve(速度, vlist, Color.Red, SymbolType.Diamond);//填充白色myCurve.Symbol.Fill new Fill(Color.White);//显示X的网格线myPane.XAxis.MajorGrid.IsVisible true;//设置Y轴刻度为红色myPane.YAxis.Scale.FontSpec.FontColor Color.Red;myPane.YAxis.Title.FontSpec.FontColor Color.Red;//隐藏Y轴对面的刻度显示myPane.YAxis.MajorTic.IsOpposite false;myPane.YAxis.MinorTic.IsOpposite false;// 不显示Y轴的0刻度线myPane.YAxis.MajorGrid.IsZeroLine false;myPane.YAxis.MajorGrid.IsVisible true;myPane.YAxis.MajorGrid.Color Color.Red;//设置刻度范围myPane.YAxis.Scale.Align AlignP.Inside;myPane.YAxis.Scale.Max 100;myPane.YAxis.Scale.MaxAuto true;//设置chart的背景颜色myPane.Chart.Fill new Fill(Color.White, Color.LightGoldenrodYellow, 45.0f);//刷新轴myZedGraph.AxisChange();}#endregion/// summary/// 刷新曲线/// /summary/// param namesender/param/// param namee/paramprivate void ChartTimer_Tick(object sender, EventArgs e){//随机数据模拟Random random new Random();double v random.Next(30, 60);//添加新的数据vlist.Add(time, v);time 2;//曲线刷新myZedGraph.AxisChange();myZedGraph.Refresh();}}
}
运行结果动态增加点
数据点和线等属性可以调整
6、需求升级 客户不想看到这么多数据只想看到最新的前三十条数据怎么做呢 方法1 判断数据是否超过30大于30之后每添加新的数据就把最前面的一个数据移除掉 方法2 不需要移除数据更新X轴的范围让其只绘制前面30个数据。这个方法需要知道30个数据X轴的具体值是多少。
方法1修改定时器刷新函数ChartTimer_Tick(object sender, EventArgs e) 1. 随机数据模拟:
首先通过 Random 类生成一个随机速度值 v 范围在 30 到 60 之间。
2. 添加新的数据:
使用 vlist.Add(time, v) 将新的数据点添加到 vlist 中其中 time 是时间值每个点的时间间隔为 2。
3. 保留最新的 30 个数据:
在 if (vlist.Count 30) 的条件判断中当数据点数量超过 30 个时通过 vlist.RemoveAt(0) 移除最早的数据点以保持数据点数量为最新的 30 个。
4. 曲线刷新:
最后调用 AxisChange 方法和 Refresh 方法刷新曲线确保新的数据点能够正确显示在图表中。
这段代码实现了在不断更新数据点的同时保留最新的 30 个数据点确保图表中显示的数据点数量不会无限增长。这样可以有效管理数据点的数量避免数据量过大导致图表显示效果不佳。 /// summary/// 刷新曲线/// /summary/// param namesender/param/// param namee/paramprivate void ChartTimer_Tick(object sender, EventArgs e){//随机数据模拟Random random new Random();double v random.Next(30, 60);//添加新的数据vlist.Add(time, v);time 2;#region 方法1if (vlist.Count 30){// 保留最新的30个数据vlist.RemoveAt(0);}#endregion//曲线刷新myZedGraph.AxisChange();myZedGraph.Refresh();}结果如下可以看到数据量一直保持在30个前面的数据会被移除掉。 方法2 1. 随机数据模拟:
首先通过 Random 类生成一个随机速度值 v 范围在 30 到 60 之间。
2. 添加新的数据:
使用 vlist.Add(time, v) 将新的数据点添加到 vlist 中其中 time 是时间值每个点的时间间隔为 2。
3. 更新数据点的时间间隔:
每次添加新数据后更新时间 time 的值确保每个数据点的时间间隔为 2。
4. 方法1 (注释部分):
这部分代码是一种方法来保留最新的 30 个数据点当数据点数量超过 30 个时移除最早的数据点。
5. 方法2:
这部分代码是另一种方法来限制数据点数量为 30 个并更新X轴的显示范围。当数据点数量达到或超过 30 个时设置X轴的最大值为当前时间 time 并根据每个点的时间间隔计算出X轴的最小值以确保只显示最新的 30 个数据点。
6. 曲线刷新:
最后调用 AxisChange 方法和 Refresh 方法刷新曲线确保新的数据点能够正确显示在图表中。
这段代码实现了在不断更新数据点的同时限制数据点数量为最新的 30 个并根据数据点的时间间隔更新X轴的显示范围。这样可以保持图表中显示的数据点为最新的数据同时避免数据点数量过多导致图表混乱。 /// summary/// 刷新曲线/// /summary/// param namesender/param/// param namee/paramprivate void ChartTimer_Tick(object sender, EventArgs e){//随机数据模拟Random random new Random();double v random.Next(30, 60);//添加新的数据vlist.Add(time, v);//每个点的时间间隔time 2;#region 方法1//if (vlist.Count 30)//{// 保留最新的30个数据// vlist.RemoveAt(0);//}#endregion#region 方法2if (vlist.Count 30){//更新X轴的显示范围myZedGraph.GraphPane.XAxis.Scale.Max time;//每个点的时间间隔myZedGraph.GraphPane.XAxis.Scale.Min time - (30 * 2);}#endregion//曲线刷新myZedGraph.AxisChange();myZedGraph.Refresh();}运行如下这个效果就看着比较连续没有太多空旷的地方
四、ZedGraph的高端应用
ZedGraph的图表种类、属性很多可以搜索相关实际高端应用学习一下这个控件的强大功能的使用场景。
五、、总结
这篇文章是关于 ZedGraph 图表库的介绍和应用指南。文章主要包括以下内容 ZedGraph介绍介绍了 ZedGraph 是一个用于绘制图表和图形的开源.NET图表库具有丰富的功能和灵活性适用于各种类型的图表如折线图、柱状图、饼图等。同时列出了 ZedGraph 的特点和缺点并提到了在不同版本之间的差异。 ZedGraph官网提供了 ZedGraph 的官方网址用户可以在该网站上找到库文件的下载和使用示例。 ZedGraph的应用详细介绍了如何在 WinForm 项目中使用 ZedGraph 库包括下载库文件、引用和添加控件等步骤。同时给出了示例代码展示了如何在 Windows 窗体应用程序中绘制速度随时间变化的曲线图。 需求升级针对客户需求升级只展示最新的前三十条数据提供了两种方法来实现这一需求。方法一是保留最新的 30 个数据点方法二是更新X轴的显示范围只绘制前面 30 个数据点。提供了相应的代码和运行结果展示。 总结文章对整个内容进行了总结概括了 ZedGraph 的特点、官网地址、应用方法以及需求升级的实现方式。为读者提供了全面的了解和使用指导。 如果你喜欢我的文字还有一个专门输出心情类文字的地方(wx)搜索llxxmev