ZedGraph绘图
一、下载及配置
下载ZedGraph
官网下载地址 http://sourceforge.net/projects/zedgraph/files/
添加 ZedGraph.dll 和ZedGraph.Web.dll的引用 在控件库中添加ZedGraph控件
右键点击工具箱 - 选择项 - .Net Framework 组件 - 浏览 - 找到ZedGraph.dll 和ZedGraph.Web.dll添加 zedGraphControl 控件就出现在工具箱中
二、绘制折线图及添加标注
string sql = string.Format("select * from 成绩表”);
DataTable data =SqlProxy.GetData(sql).Tables[0]);
// Get a reference to the GraphPane instance in the ZedGraphControl
GraphPane myPane = zg1.GraphPane;
// Set the titles and axis labels
myPane.Title.Text = string.Format("张望的成绩变化曲线");
myPane.XAxis.Title.Text = "测试次数";
myPane.YAxis.Title.Text = "得分";
// Make up some data points based on the Sine function
string[] titles = new string[5] { "3000米跑", "单杠引体向上", "双杠杠端臂屈伸", "仰卧起坐", "5.5公斤
Color[] colors = new System.Drawing.Color[] { Color.Red, Color.Black, Color.Blue, Color.Green, Color
for (int i = 0; i < data.Columns.Count; i++)
{
PointPairList list = new PointPairList();
for (int j = 0; j < data.Rows.Count; j++)
{
double x = j + 1;
double y = double.Parse(data.Rows[j][i].ToString());
list.Add(x, y);
}
LineItem myCurve = myPane.AddCurve(titles[i], list, colors[i], SymbolType.Diamond);
for (int tt = 0; tt < data.Rows.Count; tt++)
{//为每个点添加标注(标注信息为纵坐标值)
PointPair pp = myCurve.Points[tt];
TextObj text = new TextObj(pp.Y.ToString("f2"), pp.X, pp.Y, CoordType.AxisXYScale,
AlignH.Left, AlignV.Center);
text.ZOrder = ZOrder.A_InFront;
text.FontSpec.Border.IsVisible = false;
text.FontSpec.Fill.IsVisible = false;
text.FontSpec.Angle = 60;//倾斜60度
myPane.GraphObjList.Add(text);
}
// Fill the symbols with white
myCurve.Symbol.Fill = new Fill(Color.White);
}
// Make the Y axis scale red
myPane.YAxis.Scale.FontSpec.FontColor = Color.Red;
myPane.YAxis.Title.FontSpec.FontColor = Color.Red;
// turn off the opposite tics so the Y tics don't show up on the Y2 axis
myPane.YAxis.MajorTic.IsOpposite = false;
myPane.YAxis.MinorTic.IsOpposite = false;
// Don't display the Y zero line
myPane.YAxis.MajorGrid.IsZeroLine = false;
// Align the Y axis labels so they are flush to the axis
myPane.YAxis.Scale.Align = AlignP.Inside;
// Manually set the axis range
myPane.YAxis.Scale.Min = 0;//纵轴显示最小值
myPane.YAxis.Scale.Max = 30; //纵轴显示最大值
myPane.YAxis.Scale.MajorStep = 1;//纵轴大刻度步长
myPane.XAxis.Scale.Min = 1;//横轴最小值
myPane.XAxis.Scale.Max = data.Rows.Count;//横轴最大值
myPane.XAxis.Scale.MajorStep = 1;//横轴大刻度步长
myPane.XAxis.MinorGrid.IsVisible = false;
myPane.XAxis.MajorGrid.IsVisible = false;
// Enable the Y2 axis display
myPane.Y2Axis.IsVisible = false;
myPane.Chart.Fill = new Fill(Color.White, Color.LightGray, 45.0f);
zg1.IsShowHScrollBar = false;//不显示水平滚动条
zg1.IsShowVScrollBar = false;//不显示垂直滚动条
zg1.IsAutoScrollRange = false;
zg1.IsShowPointValues = false;
SetSize();
zg1.AxisChange();//重新绘制坐标(当设置坐标轴后必须调用此函数)
zg1.Invalidate();
三、多个ZedGraphControl绘折线图
代码如下:
string sql = string.Format("select * from 数据表 where 工厂='A' and 时间>=100 and 时间<=200 and 数据类别='监测点数据' order by 时间 asc ");
DataTable data = access.SelectData(sql).Tables[0];
string[] titles = new string[] {"Turbidity:0.5NTU","Oxidation Reduction Potential:664mV","pH:8.06",
"Electrical Conductivity:858μS/cm","Temperature:29.1℃"};
string[] yText = new string[] {"NTU","ORP","pH","EC","Temp" };
Color[] colors = new System.Drawing.Color[] { Color.Red, Color.Black, Color.Blue, Color.Green, Color.HotPink };
for (int col_index = 0; col_index < N; col_index++)
{//依次获取各个ZedGraphControl控件
ZedGraphControl zgc = this.Controls.Find("zedGraphControl" + col_index, false)[0] as ZedGraphControl;
zgc.GraphPane.CurveList.Clear();//清空已有图形(下面三行代码也是必不可少)
zgc.GraphPane.GraphObjList.Clear();
zgc.AxisChange();
zgc.Refresh();
GraphPane myPane = zgc.GraphPane;
//zgc.Font = new Font("宋体",50);
myPane.Legend.IsVisible = false;
// Set the titles and axis labels
myPane.Title.Text = titles[col_index];
myPane.XAxis.Title.Text = "Time (s)";
myPane.YAxis.Title.Text = yText[col_index];
PointPairList list = new PointPairList();
for (int j = 0; j < data.Rows.Count; j++)
{
double x =xMin+ j*X_STEP;
double y = double.Parse(data.Rows[j][col_index].ToString());
list.Add(x, y);
}
LineItem myCurve = myPane.AddCurve(titles[col_index], list, colors[col_index], SymbolType.Diamond);
myCurve.Symbol.Fill = new Fill(Color.White);
myPane.YAxis.Scale.FontSpec.FontColor = Color.Red;
myPane.YAxis.Title.FontSpec.FontColor = Color.Red;
myPane.YAxis.MajorTic.IsOpposite = false;
myPane.YAxis.MinorTic.IsOpposite = false;
myPane.YAxis.MajorGrid.IsZeroLine = false;
myPane.YAxis.Scale.Align = AlignP.Inside;
myPane.YAxis.Scale.Min = 100;
myPane.YAxis.Scale.Max = 200;
//myPane.YAxis.Scale.MinorStep = myPane.YAxis.Scale.MajorStep;
myPane.YAxis.MajorGrid.IsVisible = true;
myPane.XAxis.Scale.Min = 0;
myPane.XAxis.Scale.Max = 100;
myPane.XAxis.Scale.MajorStep = 12;
myPane.XAxis.Scale.MinorStep = 12;
myPane.XAxis.MajorGrid.IsVisible = true;
myPane.Y2Axis.IsVisible = false;
myPane.Chart.Fill = new Fill(Color.White, Color.LightGray, 45.0f);
zgc.IsShowHScrollBar = false;
zgc.IsShowVScrollBar = false;
zgc.IsAutoScrollRange = false;
zgc.IsShowPointValues = false;
//SetSize();
myPane.IsFontsScaled = false;//必须设置成false,否则设置字体无效
myPane.Title.FontSpec.Size = 12;
myPane.XAxis.Title.FontSpec.Size = 12;
myPane.XAxis.Scale.FontSpec.Size = 12;
myPane.YAxis.Scale.FontSpec.Size = 12;
myPane.YAxis.Title.FontSpec.Size = 12;
zgc.AxisChange();
zgc.Invalidate();
}
ZedGraph绘图相关推荐
- zedgraph绘图(修改)
首先先下载 zedgraph.dll和zedgraph.web.DLL两个文件 添加项目并引用 首先添加一个用户控件 WebUserDrawGrap.ascx html页面: <%@ Contr ...
- ZedGraph在Web中的使用
上一篇SQL实现分组统计查询(按月.小时分组)中介绍了按月和小时为单位怎样实现分组查询,在本文中会实现将上文查询的结果以图表的形式显示在页面上.在页面上显示图标有很多种解决方案,office的owc组 ...
- 腾讯QQ大数据:机器学习建模问题中的特征构造方法
转载:http://www.199it.com/archives/758115.html 腾讯QQ大数据:机器学习建模问题中的特征构造方法 2018年08月7日 作者 pdg Web分析 大数据 数据 ...
- C# 使用ZedGraph进行自定义绘图
开源的统计图控件中基本常用的是OpenFlashChar和ZedGraph,今天就先来讲讲ZedGraph的使用. ZedGraph资源 ZedGraph来源:http://sourceforge.n ...
- C#.NET常见问题(FAQ)-如何使用2D绘图控件ZedGraph绘制坐标轴和坐标曲线
添加数据:示例添加了一条sin曲线和一条cos曲线,注意cos曲线比sin曲线点更密集(可以用这种方式控制点的采样疏密程度) 默认显示效果如下图所示,可以框选一个部分看放大效果 右击某个点可以显示坐标 ...
- ZedGraph在项目中的应用
ZedGraph在项目中的应用<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" ...
- WInform中实现设置ZedGraph中曲线的X轴与Y轴的上限与下限
场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...
- Winform中实现ZedGraph中曲线右键显示为中文
场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...
- Winform中实现ZedGraph曲线图缩放后复原功能
场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...
- C#窗体应用中使用ZedGraph曲线插件绘制图表
场景 ZedGraph ZedGraph 是一个开源的.NET图表类库, 全部代码都是用C#开发的.它可以利用任意的数据集合创建2D的线性和柱形图表. 控件下载 https://download.cs ...
最新文章
- Windows 11 再惹“众怒”!网友:微软就是逼我去买新电脑!
- Bioinformatics|基于知识图谱嵌入的药物靶标发现
- 最强轻量级目标检测yolo fastest
- yum lock 解决方法
- 【数据结构与算法】之深入解析“冗余连接”的求解思路与算法示例
- 剑指offer 二叉搜索树的后序遍历
- python 把txt变成字符串_如何通过 Python 如何写文件 ?
- [TabControl] TabControl控件的最佳实践,可以把一个窗体和用户控件添加进来
- Sql语句优化-查询两表不同行NOT IN、NOT EXISTS、连接查询Left Join
- Wireshark教程:识别主机和用户
- 计算机连接小米usb驱动,小米手机USB驱动电脑版
- 软件测试工程师面试的时候该怎么样介绍自己?你的简历是不是该优化了
- Windows 批量打印
- 如何将一个逻辑库下所有数据集的名称汇总生成新的数据集BY:crackman
- 初学者-----HTTP协议的基本格式
- Brave 安全隐私浏览器
- 【阅读论文】第四章--分割渗出--博-自动化眼底图像分析技术可筛查糖尿病患者的视网膜疾病
- 删除Mac版QQ聊天记录
- 一文搞懂内存映射原理及使用方法
- 【jQuery】网页文本格式编辑器xheditor