ZedGraph控件属性及基础教程详解(2003) 下载本文

ZedGraph 属性及基础教程

myBar.Bar.Fill = new Fill( Color.Green, Color.White, Color.Green ); // Generate a black line with \4\in the legend

LineItem myCurve = myPane.AddCurve( \4\null, y4, Color.Black, SymbolType.Circle ); myCurve.Line.Fill = new Fill( Color.White, Color.LightSkyBlue, -45F ); // Fix up the curve attributes a little myCurve.Symbol.Size = 8.0F;

myCurve.Symbol.Fill = new Fill( Color.White ); myCurve.Line.Width = 2.0F;

// Draw the X tics between the labels instead of at the labels myPane.XAxis.IsTicsBetweenLabels = true;

// Set the XAxis labels

myPane.XAxis.TextLabels = labels; // Set the XAxis to Text type myPane.XAxis.Type = AxisType.Text; // Fill the axis area with a gradient

myPane.AxisFill = new Fill( Color.White,Color.FromArgb( 255, 255, 166), 90F ); // Fill the pane area with a solid color

myPane.PaneFill = new Fill( Color.FromArgb( 250, 250, 255) ); base.ZedGraphControl.AxisChange(); } }

}

这一节,我们主要介绍BarItem这个类,这个类就是ZedGraph中关于柱形的类。它的继承关系如下: System.Object

ZedGraph.CurveItem ZedGraph.BarItem

它的基类ZedGraph.CurveItem里包含了Pane上单个曲线图表的数据和方法。它实现了图表的属性设置,例如关键词(Key),成员的名字、颜色、符号、尺寸和线条的风格等等。

BarItem中有五个构造函数,其中有两个是大家常用的,如下:

//Create a new BarItem, specifying only the legend label for the bar. public BarItem(string);

//Create a new BarItem using the specified properties.

17 / 33

ZedGraph 属性及基础教程

public BarItem(string,double[],double[],Color);

BarItem myBar = myPane.AddBar( \1\null, y, Color.Red ); myBar.Bar.Fill = new Fill( Color.Red, Color.White, Color.Red );

这里用的是直接用Pane里的AddBar来设定柱形,并且返回一个BarItem的引用,让用户来对这个Bar进行进一步的描述。我们可以看到构造函数中的 ”Curve1”就是在Legend中要显示的文字(关于Legend请看第一节)。X轴上的轴标先不设定,后面跟着Y轴和这个Bar的颜色。

第二行代码就使用myBar这个引用来对这个Bar进行红—白—红的颜色填充。

// Draw the X tics between the labels instead of at the labels myPane.XAxis.IsTicsBetweenLabels = true;

// Set the XAxis labels

myPane.XAxis.TextLabels = labels; // Set the XAxis to Text type

myPane.XAxis.Type = AxisType.Text;

第一行代码主要是对X轴上柱形的位置做一个设定,默认是居中对齐,如果不设定这一项目,或者设定这一项为false,则柱形在界面上的显示是居中的,如下图:(myPane.XAxis.IsTicsBetweenLabels = false;)

第二、三行代码的意思是设定X轴的坐标以文本方式显示,文本内容来自

18 / 33

ZedGraph 属性及基础教程

string[] labels。

// Fill the axis area with a gradient

myPane.AxisFill = new Fill( Color.White,Color.FromArgb( 255, 255, 166), 90F ); // Fill the pane area with a solid color

myPane.PaneFill = new Fill( Color.FromArgb( 250, 250, 255) );

最后两句一个是设定Pane中轴的背景颜色,以90度的角度从白到淡黄的渐变效果;另一个是设定Pane的背景色,是淡灰白色,在图中体现的不明显,请大家自己改成Color.FromArgb( 250 , 250 , 0 )试试效果吧。

最后那个全填充的曲线图在第1,2,3,4节中已经都介绍过了,这里不再重复,请自己参看以前的章节。

基本教程篇--第六、七节HorizontalBarSampleDemo.cs和StackedBarSampleDemo.cs介绍

这两节与第五节相比,并没有本质上的区别,所以这里只给出相应的代码、示例图和必要的说明。

using System;

using System.Drawing; using System.Collections; using ZedGraph;

namespace ZedGraph.Demo

{

///

19 / 33

ZedGraph 属性及基础教程

/// Summary description for SimpleDemo. ///

public class HorizontalBarSampleDemo : DemoBase {

public HorizontalBarSampleDemo() : base( \Project Horizontal Bar Chart Sample\

\Bar Sample\DemoType.Tutorial )

{

GraphPane myPane = base.GraphPane; // Set the title and axis labels

myPane.Title = \Horizontal Percent Stack Graph\ myPane.XAxis.Title = \ myPane.YAxis.Title = \

// Enter some random data values double[] y = { 100, 115, 15, 22, 98 }; double[] y2 = { 90, 60, 95, 35, 30 }; double[] y3 = { 20, 40, 105, 15, 30 };

// Generate a red bar with \in the legend

BarItem myCurve = myPane.AddBar( \y, null, Color.Red ); myCurve.Bar.Fill = new Fill( Color.Red, Color.White, Color.Red, 90F ); // Generate a blue bar with \in the legend

myCurve = myPane.AddBar( \y2, null, Color.Blue );

myCurve.Bar.Fill = new Fill( Color.Blue, Color.White, Color.Blue, 90F ); // Generate a green bar with \Maria\in the legend

myCurve = myPane.AddBar( \Maria\y3, null, Color.Green ); myCurve.Bar.Fill = new Fill( Color.Green, Color.White, Color.Green, 90F ); // Draw the Y tics between the labels instead of at the labels myPane.YAxis.IsTicsBetweenLabels = true; // Set the YAxis to text type

myPane.YAxis.Type = AxisType.Text;

string[] labels = { \\\\\}; myPane.YAxis.TextLabels = labels; myPane.XAxis.Max = 110;

20 / 33