一、下载及配置

下载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绘图相关推荐

  1. zedgraph绘图(修改)

    首先先下载 zedgraph.dll和zedgraph.web.DLL两个文件 添加项目并引用 首先添加一个用户控件 WebUserDrawGrap.ascx html页面: <%@ Contr ...

  2. ZedGraph在Web中的使用

    上一篇SQL实现分组统计查询(按月.小时分组)中介绍了按月和小时为单位怎样实现分组查询,在本文中会实现将上文查询的结果以图表的形式显示在页面上.在页面上显示图标有很多种解决方案,office的owc组 ...

  3. 腾讯QQ大数据:机器学习建模问题中的特征构造方法

    转载:http://www.199it.com/archives/758115.html 腾讯QQ大数据:机器学习建模问题中的特征构造方法 2018年08月7日 作者 pdg Web分析 大数据 数据 ...

  4. C# 使用ZedGraph进行自定义绘图

    开源的统计图控件中基本常用的是OpenFlashChar和ZedGraph,今天就先来讲讲ZedGraph的使用. ZedGraph资源 ZedGraph来源:http://sourceforge.n ...

  5. C#.NET常见问题(FAQ)-如何使用2D绘图控件ZedGraph绘制坐标轴和坐标曲线

    添加数据:示例添加了一条sin曲线和一条cos曲线,注意cos曲线比sin曲线点更密集(可以用这种方式控制点的采样疏密程度) 默认显示效果如下图所示,可以框选一个部分看放大效果 右击某个点可以显示坐标 ...

  6. ZedGraph在项目中的应用

    ZedGraph在项目中的应用<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" ...

  7. WInform中实现设置ZedGraph中曲线的X轴与Y轴的上限与下限

    场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  8. Winform中实现ZedGraph中曲线右键显示为中文

    场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  9. Winform中实现ZedGraph曲线图缩放后复原功能

    场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  10. C#窗体应用中使用ZedGraph曲线插件绘制图表

    场景 ZedGraph ZedGraph 是一个开源的.NET图表类库, 全部代码都是用C#开发的.它可以利用任意的数据集合创建2D的线性和柱形图表. 控件下载 https://download.cs ...

最新文章

  1. Windows 11 再惹“众怒”!网友:微软就是逼我去买新电脑!
  2. Bioinformatics|基于知识图谱嵌入的药物靶标发现
  3. 最强轻量级目标检测yolo fastest
  4. yum lock 解决方法
  5. 【数据结构与算法】之深入解析“冗余连接”的求解思路与算法示例
  6. 剑指offer 二叉搜索树的后序遍历
  7. python 把txt变成字符串_如何通过 Python 如何写文件 ?
  8. [TabControl] TabControl控件的最佳实践,可以把一个窗体和用户控件添加进来
  9. Sql语句优化-查询两表不同行NOT IN、NOT EXISTS、连接查询Left Join
  10. Wireshark教程:识别主机和用户
  11. 计算机连接小米usb驱动,小米手机USB驱动电脑版
  12. 软件测试工程师面试的时候该怎么样介绍自己?你的简历是不是该优化了
  13. Windows 批量打印
  14. 如何将一个逻辑库下所有数据集的名称汇总生成新的数据集BY:crackman
  15. 初学者-----HTTP协议的基本格式
  16. Brave 安全隐私浏览器
  17. 【阅读论文】第四章--分割渗出--博-自动化眼底图像分析技术可筛查糖尿病患者的视网膜疾病
  18. 删除Mac版QQ聊天记录
  19. 一文搞懂内存映射原理及使用方法
  20. 【jQuery】网页文本格式编辑器xheditor

热门文章

  1. Java性能优化攻略详解
  2. C#使用AForge连接摄像头并且拍照
  3. esp8266教程:esp8266使用mqtt连接百度智能云
  4. Mac好用的RSS阅读器Reeder使用方法
  5. html原生ajax
  6. Spring JDK动态代理详解
  7. js 生成二维码(qrcodejs)
  8. android打开ofd文件
  9. pytorch(11)-- crnn 车牌端到端识别
  10. Setup Factory制作程序exe安装包-软件打包360浏览器及串口驱动