ZedGraph控件的使用 --归类(转帖)
在我们编写程序的时候,有时候是要做一些统计的,为了达到一目了然的效果,饼状图,曲线图,柱状图都是很好的表现统计的直观形式。这个时候,ZedGraph控件给我们带来了极大的方便。
1.下载ZedGraph.dll
2.在项目中引用这个控件 (: 首先,在项目解决方案里添加,然后在工具箱中点击右键,选择项,COM,浏览,打开,我们就 会在工具箱的最下方发现这个控件了,确定。然后就可以在一个WINFORM中直接加入这个控件(在FORM上就出现了了图 了),具体的统计数据我们是在其添加X,Y坐标时候处理的。如:
double Y=(double)(Convert.ToDouble(tem1[i]));
double X=(double)i;
temlist.Add(X,Y);
//这里,是已经定义了GraphPane,PointPairList
gridview结合Zedgraph使用用法
http://www.cnblogs.com/levin9/articles/859476.html
ZedGraph类库介绍
http://blog.csdn.net/tjvictor/category/257827.aspx
介绍和简单的操作手册:http://www.codeproject.com/csharp/zedgraph.asp
代码例子:http://zedgraph.org/wiki/index.php?title=Sample_Graphs
整体介绍:http://zedgraph.org/wiki/index.php?title=Main_Page
操作手册(官网):http://zedgraph.org/wiki/index.php?title=How_Do_I%3F
中文网站:(这个不好,是在线翻译过来的,看着比较累)
http://202.165.104.75/babelfish/translate_url_content?lp=en_zh&trurl=http%3a%2f%2fzedgraph.org%2fwiki
还有这个,使用帮助:http://www.codeproject.com/KB/graphics/zedgraph.aspx
附:在vs中使用ZedGraph控件的一些记录(转)
几个注意点:
图片的保存路径设置:RenderedImagePath 属性中设置,程序对该文件夹应该是有写和修改权限的
图片的输出格式:OutputFormat 属性中设置,Png 的推荐,比较清晰。
Chart
ChartBorder
图表区域的边框设置
ChartFill
图表区域的背景填充
Legend
图表的注释标签显示设置项目,一组数据对应一种颜色的注释
IsHStack
当有多个显示项的时候设置 Y 轴数据是叠加的还是分开的
Xaxis
图表区域的 X 轴相关信息设置
AxisColor
坐标轴颜色
Cross
坐标的原点,可以设置坐标的偏移程度
CrossAuto
原点自动设置:True 的话 Cross 的设置就无效了。
FontSpec
X 轴标题字体相关信息
Angle
X 轴标题字体显示时候的角度,0为水平 90为垂直
Fill
X 轴标题字体填充信息
ColorOpacity
透明度
IsScaled
设置 X 轴标题字体显示大小是否根据图的比例放大缩小
RangeMax
填充时候的最大倾斜度(有过渡色,没试过)
RangeMin
填充时候的最小倾斜度(有过渡色,没试过)
StringAlignment
X 轴标题字体排列(不清楚,没试过)
IsOmitMag
是否显示指数幂(10次方,没试过,似乎与 IsUseTenPower 有关系)
IsPreventLabelOverlap
坐标值显示是否允许重叠,如果False的话,控件会根据坐标值长度自动消除部分坐标值的显示状态
IsShowTitle
X 轴标题是否显示
IsTicsBetweenLabels
两个坐标值之间是否自动显示分隔标志
IsUseTenPower
是否使用10次幂指数
IsZeroLine
当数据为0时候是否显示(在饼状图显示的时候有用)
IsVisible
是否显示 X 轴
MajorGrid
大跨度的 X 轴表格虚线线显示信息
DashOff
虚线中孔间距
DashOn
虚线单位长度
MajorTic
大跨度的 X 轴刻度信息
IsInside
在 Chart 内部是否显示
IsOutSide
在 Chart 外部是否显示
IsOpposite
在对面的轴上是否显示
MinorGrid
小跨度的 X 轴表格虚线显示信息
MinorTic
小跨度的 x 轴刻度信息
MinSpace
刻度和轴之间的距离(没试过)
Scale
刻度值的一些设定
IsReverse
X 轴的刻度值从高到低还是从低到高
MajorStep
大刻度步长
MajorStepAuto
是否自动设置大刻度步长
MajorUnit
大刻度步长单位
Max
刻度最大值
MaxAuto
根据输入数据自动设置刻度最大值
Min
刻度最小值
MinAuto
根据输入数据自动设置刻度最小值
MinGrace
不清楚,没试过
MinorStep
小刻度步长
MinorStepAuto
是否自动设置小刻度步长
MinorUnit
小刻度单位
Type
数据显示方式
Liner
直接现实(自动)
Date
按日期方式显示
Log
按指数幂方式显示
Ordinal
顺序显示
Y2Axis
第二个 Y 轴坐标信息显示(具体设置看 X 轴)
Yaxis
第一个 Y 轴坐标信息显示(具体设置看 X 轴)
BarBase
在生成柱状图的时候设置柱状是基于 X 轴还是其他轴
BarType
柱状的类型叠加或其他。
IsFontsScaled
图比例变化时候图表上的文字是否跟着自动缩放
IsIgnoreInitial
是否忽略初始值
IsIgnoreMissing
是否忽略缺省值
IsPenWidthScaled
图比例变化时候图表上的画笔的粗细是否跟着自动缩放
IsShowTitle
图表标题是否显示
PaneFill
Pane 的一些填充信息
BaseDimension
缩放比例基数(可以试试效果)
IsImageMap
不清楚干吗用的
AxisChaneged
是否允许自动绘图(没试过,一般都 true,动态绘图)
CacheDuration
Cache 保存时间0
OutputFormat
输出格式
RenderedImagePath
输出路径
RenderMode
输出模式,不太清楚一般都是 ImageTag,另一个输出的是乱码不是图片。对于图表而言,一般是三种表现形式:柱状图、饼状图和点线图。
//---------------------------------------------------代码-------------------------------------------------------------
/// <summary>
/// 得到统计数据
/// </summary>
private double[] getData(string queryDate, int baseStationId, int faultType)
{
double[] d=_objWebService.GetFaultNum(queryDate, baseStationId, faultType);
return d;
}
#region 折线图
/// <summary>
/// 故障统计折线图
/// </summary>
/// <param name="zg1"></param>
/// <param name="queryDate"></param>
/// <param name="baseStationId"></param>
/// <param name="faultType"></param>
private void CreateGraph1(ZedGraphControl zg1, string queryDate, int baseStationId, int faultType)
{
GraphPane myPane = zg1.GraphPane;
//清空绘制区
myPane.CurveList.Clear();
myPane.GraphObjList.Clear();
myPane.Title.Text = "故障统计折线图";
myPane.XAxis.Title.Text = "年份";
myPane.YAxis.Title.Text = "故障次数";
myPane.XAxis.IsVisible = true;
myPane.YAxis.IsVisible = true;
//myPane.XAxis.Type = ZedGraph.AxisType.Linear;
string[] labels = { "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月" };
double[] y = this.getData(queryDate, baseStationId, faultType);
LineItem myCurve = myPane.AddCurve(null, null, y, Color.Red, SymbolType.Diamond);
myCurve.Line.Fill = new Fill(Color.White, Color.LightSkyBlue, -45F);
myPane.XAxis.Scale.TextLabels = labels;
myPane.XAxis.Type = AxisType.Text;
myPane.YAxis.Scale.MajorStep = 10;
myPane.YAxis.Scale.Max = 100;
myPane.Chart.Fill = new Fill(Color.White, Color.FromArgb(255, 255, 166), 90F);
myPane.Fill = new Fill(Color.FromArgb(250, 250, 255));
zg1.AxisChange();
zg1.Refresh();
}
#endregion
#region 柱状图
/// <summary>
/// 柱状图
/// </summary>
/// <param name="zg1"></param>
/// <param name="queryDate"></param>
/// <param name="baseStationId"></param>
/// <param name="faultType"></param>
private void CreateGraph2(ZedGraphControl zg1, string queryDate, int baseStationId, int faultType)
{
GraphPane myPane = zg1.GraphPane;
//清空绘制区
myPane.CurveList.Clear();
myPane.GraphObjList.Clear();
myPane.Title.Text = "故障统计柱状图";
myPane.XAxis.Title.Text = "年份";
myPane.YAxis.Title.Text = "故障次数";
myPane.XAxis.IsVisible = true;
myPane.YAxis.IsVisible = true;
//myPane.XAxis.Type = ZedGraph.AxisType.Linear;
string[] labels = { "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月" };
double[] y = this.getData(queryDate, baseStationId, faultType);
BarItem myBar = myPane.AddBar(null, null, y, Color.Red);
myBar.Bar.Fill = new Fill(Color.Red, Color.White, Color.Red);
//myPane.XAxis.MajorTic.IsBetweenLabels = true;
myPane.XAxis.Scale.TextLabels = labels;
myPane.XAxis.Type = AxisType.Text;
myPane.YAxis.Scale.MajorStep = 10;
myPane.YAxis.Scale.Max = 100;
myPane.Chart.Fill = new Fill(Color.White,Color.FromArgb(255, 255, 166), 90F);
myPane.Fill = new Fill(Color.FromArgb(250, 250, 255));
zg1.AxisChange();
zg1.Refresh();
}
#endregion
#region 饼状图
private List<Color> defaultColors = new List<Color>();
private void InitDefaultColors()
{
defaultColors.Add(Color.Red);
defaultColors.Add(Color.Green);
defaultColors.Add(Color.Blue);
defaultColors.Add(Color.Yellow);
defaultColors.Add(Color.YellowGreen);
defaultColors.Add(Color.Brown);
defaultColors.Add(Color.Aqua);
defaultColors.Add(Color.SaddleBrown);
defaultColors.Add(Color.DarkSeaGreen);
defaultColors.Add(Color.Indigo);
defaultColors.Add(Color.SlateBlue);
defaultColors.Add(Color.SeaShell);
}
/// <summary>
/// pie graph
/// </summary>
/// <param name="zg1"></param>
/// <param name="queryDate"></param>
/// <param name="baseStationId"></param>
/// <param name="faultType"></param>
private void CreateGraph3(ZedGraphControl zg1, string queryDate, int baseStationId, int faultType)
{
InitDefaultColors();
GraphPane myPane = zg1.GraphPane;
//清空绘制区
myPane.CurveList.Clear();
myPane.GraphObjList.Clear();
myPane.Title.Text = "故障统计饼图";
myPane.XAxis.IsVisible = false;
myPane.YAxis.IsVisible = false;
myPane.Fill = new Fill(Color.Cornsilk);
myPane.Chart.Fill = new Fill(Color.Cornsilk);
myPane.Legend.Position = LegendPos.Right;
string[] labels = { "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月" };
double[] y = this.getData(queryDate, baseStationId, faultType);
for (int i = 0; i < labels.Length; i++)
{
PieItem segment = myPane.AddPieSlice(y[i], defaultColors[i], Color.White, 45f, 0, labels[i]);
segment.LabelType = PieLabelType.Name_Percent;
}
zg1.AxisChange();
zg1.Refresh();
}
#endregion
ZedGraph控件的使用 --归类(转帖)的更多相关文章
- zedgraph控件怎么取得鼠标位置的坐标值(转帖)
我想取得zedgraph控件上任意鼠标位置的坐标值,IsShowCursorValues可以显示鼠标位置的值但是不能提取赋值给其他的变量.用PointValueEvent这个事件又只能得到已经画出的点 ...
- zedgraph控件的一些比较有用的属性 转
(1)zedgraph控件属性具体解释: AxisChange()() ->> This performs an axis change command on the graphPane. ...
- ZedGraph控件的使用
http://blog.chinaunix.net/uid-20776117-id-1847015.html 在我们编写程序的时候,有时候是要做一些统计的,为了达到一目了然的效果,饼状图,曲线图,柱状 ...
- 用ZedGraph控件作图圆
转自原文 用ZedGraph控件作图圆 用ZedGraph控件绘制圆各位: 我想利用第三方控ZedGraph在WinForm窗体中绘制图形如,圆,填充圆,只是简单的圆图形,但一直没有找到相应的方 ...
- zedgraph控件的一些比较有用的属性
(1)zedgraph控件属性具体解释: AxisChange()() ->> This performs an axis change command on the graphPane. ...
- ZedGraph控件生成饼图、拆线图和柱状图例程
这几天做了个自己觉得还蛮NB的功能,在GRID中选中一块数据,然后右键菜单即可生成三种图形,还可以互相切换,对了,饼图还添加了鼠标点击分离的处理,大致如图: 用的控件就是ZedGraph,我把它继承封 ...
- C#上位机中ZedGraph控件的使用
上位机程序控制PLC模拟量通道输出周期性正弦波信号,并采集所造成改变的模拟量输入信号,并绘制数据变化曲线. 界面如图: 最后测试效果如图: 代码: using System; using System ...
- C# ZedGraph 控件各属性以及示例
ZedGraph属性\方法介绍 Copy(Boolean) ->> 将图像复制到剪贴板.DoPageSetup()() ->> 打开打印设置对话框. DoPrint()() - ...
- 【实验室笔记】zedgraph控件属性总结
//图表的X轴刻度线是否显示 this.zedGraphControl1.GraphPane.XAxis.MajorGrid.IsVisible = true; //图表的X轴刻度线的颜色 this. ...
随机推荐
- Linux学习笔记之Linux通过yum安装桌面
Centos系统最小化安装以后,进入默认是命令行模式,所以需要进一步安装桌面. 1,本文使用的是CentOS 7 Minimal版本. 2,启动linux操作系统,进入后没有图形界面,但是有时候还是希 ...
- Linux的crontab
如果要让unix系统重复,定期做一件事,我们就会用到crontab. 实质上真正去执行每一个重复任务的是cron,cron是的unix家族的一个后台常驻程序,cron是由cron文件来驱动的,cron ...
- 生成二维码Base64图片
这个写了,但是自己没有用,发现浏览器有的不兼容 代码: string str = System.Configuration.ConfigurationManager.AppSettings[" ...
- Spring Cloud 开发的一些推荐规划
1.提供一个统一的 父 pom 依赖 作用:统一版本与引入必要依赖 2.提供一个模板模型. 作用: 开发人员不必关系具体基础启动项 3.提供一个统一基础配置模型 作用: 开发人员不比太过关注与必 ...
- 服务器jupyter配置与ssh远程登录
jupyter 配置 首先安装jupyter,在anaconda套装中已包含,如果安装的是精简版的miniconda则通过conda install jupyter安装. 生成配置文件 jupyter ...
- php多站点配置以及Forbidden You don't have permission to access / on this server问题解决
php多站点配置以及Forbidden You don't have permission to access / on this server问题解决 一.总结 一句话总结:我的问题是php的版本问 ...
- 一个n*n 的方格,要从左上角走到右下角,一次只能往右或往下走一步,求算法得出所有走动的方法数。
题目一:一个n*n 的方格,要从左上角走到右下角,一次只能往右或往下走一步,求算法得出所有走动的方法数. 分析:对于第(i,j)个格子,只有向右走一步到达或者向左走一步到达,dp(i,j) = d(i ...
- UVA-11613 Acme Corporation (最大费用最大流+拆点)
题目大意:有一种商品X,其每每单位存放一个月的代价I固定.并且已知其每月的最大生产量.生产每单位的的代价.最大销售量和销售单价,还已知每个月生产的X能最多能存放的时间(以月为单位).问只考虑前m个月, ...
- 用django发送异步邮件
太阳底下没有新鲜事,github是一个神奇的地方,你有什么想法,需求,点子.其实别人早就想到,而且也已经做到. 所以不要高估自己,有什么想法还是GITHUB一下,免得成了井底之娃. 这几天一直在研究p ...
- ISE创建Microblaze软核(三)
第七步 进入SDK开发环境 编译完成后弹出如下对话框,选择SDK的工作目录.在MicroblazeTutor中创建一个Workspace文件夹,并选择该文件夹为SDK的工作目录. 进入SDK主界面. ...