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

时间: 2024-07-29 18:21:54

ZedGraph控件的使用 --归类(转帖)的相关文章

zedgraph控件怎么取得鼠标位置的坐标值(转帖)

我想取得zedgraph控件上任意鼠标位置的坐标值,IsShowCursorValues可以显示鼠标位置的值但是不能提取赋值给其他的变量.用PointValueEvent这个事件又只能得到已经画出的点的坐标,而我想得到任意位置的坐标. c.MouseDownEvent += new ZedGraphControl.ZedMouseEventHandler(myMouseDown);        protected bool myMouseDown(object sender, MouseEve

zedgraph控件的一些比较有用的属性 转

(1)zedgraph控件属性具体解释: AxisChange()() ->> This performs an axis change command on the graphPane. BeenDisposed ->> This checks if the control has been disposed. This is synonymous with the graph pane having been nulled or disposed. Therefore this

ZedGraph控件的使用

http://blog.chinaunix.net/uid-20776117-id-1847015.html 在我们编写程序的时候,有时候是要做一些统计的,为了达到一目了然的效果,饼状图,曲线图,柱状图都是很好的表现统计的直观形式.这个时候,ZedGraph控件给我们带来了极大的方便. 1.下载ZedGraph.dll 2.在项目中引用这个控件 (: 首先,在项目解决方案里添加,然后在工具箱中点击右键,选择项,COM,浏览,打开,我们就 会在工具箱的最下方发现这个控件了,确定.然后就可以在一个W

ZedGraph 控件各属性以及示例

ZedGraph属性\方法介绍 Copy(Boolean) ->> 将图像复制到剪贴板.DoPageSetup()() ->> 打开打印设置对话框. DoPrint()() ->> 打印图表.DoPrintPreview()() ->> 打印预览. GetImage()() ->> 返回图表上的图像. IsEnableHZoom ->> 是否允许横向缩放. IsEnableVZoom ->> 是否允许纵向缩放.IsEnab

WP7 浏览器控件WebBrowser历史记录、前进、后退、刷新功能实现

由于要在应用程序内部访问网页,不跳出应用.所以要实现一个浏览器.但是悲催的事windows phone8 的WebBrowser控件已经支持了像CanGoBack ,CanGoForward,GoBack,GoForward等这些功能,但是wp7没有就实现了几个前进后退几个功能.用在page里面也很简单,实现的效果如下图所示. 因为使用十分简单.和windows phone8上的WebBrowser一样的.我就直接给控件的代码,就帖使用的代码了. 代码如下,注释也都写的比较清楚. using S

C#:ZedGraph画图控件(待补充)

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86

WPF查找子控件和父控件方法[转帖]

WPF查找子控件和父控件方法 一.查找某种类型的子控件,并返回一个List集合 public List<T> GetChildObjects<T>(DependencyObject obj, Type typename) where T : FrameworkElement { DependencyObject child = null; List<T> childList = new List<T>(); for (int i = 0; i <= V

读书笔记-UIView与控件

1.UIView 在Objective-C中,NSObject是所有类的“根”类.同样,在UIKit框架中,也存在一个如此神奇的类UIView.从继承关系上看,UIView是所有视图的根. 1.1.UIView家族 UIView大体分为“控件”和“视图”两类,二者均继承于UIView. UIControl类是控件类,之所以这样称呼,是因为它们都有能力响应一些高级事件.UIControl类以外的视图没有这些高级事件. 1.2.应用界面的构建层次 下图(左)是一个应用界面的构建层次图,该应用有一个U

DevExpress控件使用经验总结

DevExpress是一个比较有名的界面控件套件,提供了一系列的界面控件套件的DotNet界面控件.本文主要介绍我在使用DevExpress控件过程中,遇到或者发现的一些问题解决方案,或者也可以所示一些小的经验总结.总体来讲,使用DevExpress控件,可以获得更高效的界面设计以及更美观的效果.本文主要通过给出相应的例子以及相关界面效果来说明问题,希望大家能够从中获得好的知识和思路. 1. 应用Office2007和Office2010的界面主题 开始使用DevExpress的时候,发现程序界