参考:http://zedgraph.org/wiki/index.php?title=Sample_Graphs效果如下:
1![](/Images/OutliningIndicators/None.gif)
2 using System;
3 using System.Collections;
4 using System.ComponentModel;
5 using System.Data;
6 using System.Drawing;
7 using System.Web;
8 using System.Web.SessionState;
9 using System.Web.UI;
10 using System.Web.UI.WebControls;
11 using System.Web.UI.HtmlControls;
12 using ZedGraph;
13 using ZedGraph.Web;
14![](/Images/OutliningIndicators/None.gif)
15 string typesign = "";
16 private void Page_Load(object sender, System.EventArgs e)
17![](/Images/OutliningIndicators/ExpandedBlockStart.gif) {
18 ZedGraphWeb1.OutputFormat = ZedGraphWeb.ZedGraphWebFormat.Gif;
19 typesign = Request.QueryString["typesign"];
20 }
21![](/Images/OutliningIndicators/None.gif)
22 private void InitializeComponent()
23![](/Images/OutliningIndicators/ExpandedBlockStart.gif) {
24 this.Load += new System.EventHandler(this.Page_Load);
25 this.ZedGraphWeb1.RenderGraph += new ZedGraphWebControlEventHandler(this.OnRenderGraph);
26![](/Images/OutliningIndicators/InBlock.gif)
27 }
28![](/Images/OutliningIndicators/None.gif)
29 private void OnRenderGraph(ZedGraphWeb zgw, Graphics g, MasterPane masterPane)
30![](/Images/OutliningIndicators/ExpandedBlockStart.gif) {
31 // 初始化画图面版
32 GraphPane myPane = masterPane[0];
33 if (typesign == "bar")
34![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
35
36 // 画图面版标题
37 myPane.Title.Text = "收入统计";
38 // 画图面版X标题
39 myPane.XAxis.Title.Text = "区域";
40
41 //初始化数据
42 PointPairList list = new PointPairList();
43 PointPairList list2 = new PointPairList();
44 PointPairList list3 = new PointPairList();
45 Random rand = new Random();
46 double total = 0;
47 for (double x = 0; x < 5; x += 1.0)
48![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
49 double y = rand.NextDouble() * 100;
50 double y2 = rand.NextDouble() * 100;
51 double y3 = rand.NextDouble() * 100;
52 list.Add(x, y);
53 list2.Add(x, y2);
54 list3.Add(x, y3);
55
56 total+=y;
57 }
58
59 // 画图面版Y标题
60 myPane.YAxis.Title.Text = "销售总额:"+total.ToString("F")+" 元";
61 //柱的画笔
62 // public BarItem AddBar(string 名称, IPointList 数据, Color 颜色);
63 BarItem myCurve = myPane.AddBar("收入", list, Color.Blue);
64 myCurve.Bar.Fill = new Fill(Color.Blue, Color.White, Color.Blue);
65 BarItem myCurve2 = myPane.AddBar("买农药", list2, Color.Red);
66 myCurve2.Bar.Fill = new Fill(Color.Red, Color.White, Color.Red);
67 BarItem myCurve3 = myPane.AddBar("买化肥", list3, Color.Green);
68 myCurve3.Bar.Fill = new Fill(Color.Green, Color.White, Color.Green);
69![](/Images/OutliningIndicators/InBlock.gif)
70 myPane.XAxis.MajorTic.IsBetweenLabels = true;
71 //XAxis标注
72![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) string[] labels = { "橘子", "西瓜", "梨", "桃子", "枣子" };
73 myPane.XAxis.Scale.TextLabels = labels;
74 myPane.XAxis.Type = AxisType.Text;
75 //图区以外的颜色
76 myPane.Fill = new Fill(Color.White, Color.FromArgb(200, 200, 255), 45.0f);
77 //背景颜色
78 myPane.Chart.Fill = new Fill(Color.Red, Color.LightGoldenrodYellow, 45.0f);
79 masterPane.AxisChange(g);
80
81 }
82 else if(typesign == "pie")
83![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
84![](/Images/OutliningIndicators/InBlock.gif)
85 // 设置画版区的标题
86 myPane.Title.Text = "2007 fruit Sales\n($M)";//\n:换行
87 //文字是否斜体
88 myPane.Title.FontSpec.IsItalic = true;
89 //字体大小
90 myPane.Title.FontSpec.Size = 24f;
91 //字体
92 myPane.Title.FontSpec.Family = "Times New Roman";
93![](/Images/OutliningIndicators/InBlock.gif)
94 // 填充Pane背景颜色和倾斜度
95 myPane.Fill = new Fill(Color.White, Color.Goldenrod, 45.0f);
96 // 背景填充类型
97 myPane.Chart.Fill.Type = FillType.None;
98![](/Images/OutliningIndicators/InBlock.gif)
99 // 设置location
100 myPane.Legend.Position = LegendPos.Float;
101 myPane.Legend.Location = new Location(0.95f, 0.15f, CoordType.PaneFraction,
102 AlignH.Right, AlignV.Top);
103 //slices文字大小
104 myPane.Legend.FontSpec.Size = 10f;
105 myPane.Legend.IsHStack = false;
106![](/Images/OutliningIndicators/InBlock.gif)
107 // 添加一切片值
108 // public PieItem AddPieSlice(double 数据, Color 大圆里的该切片颜色, Color 大圆里的该切片颜色, float fillAngle, double displacement, string label);
109 PieItem segment1 = myPane.AddPieSlice(20, Color.Navy, Color.White, 45f, 0, "橘子");
110 PieItem segment3 = myPane.AddPieSlice(30, Color.Purple, Color.White, 45f, .0, "西瓜");
111 PieItem segment4 = myPane.AddPieSlice(10.21, Color.LimeGreen, Color.White, 45f, 0, "梨");
112 PieItem segment2 = myPane.AddPieSlice(40, Color.SandyBrown, Color.White, 45f, 0.2, "桃子");
113 PieItem segment6 = myPane.AddPieSlice(250, Color.Red, Color.White, 45f, 0, "枣子");
114 PieItem segment7 = myPane.AddPieSlice(50, Color.Blue, Color.White, 45f, 0.2, "蔬菜");
115 PieItem segment8 = myPane.AddPieSlice(400, Color.Green, Color.White, 45f, 0, "玉米");
116 PieItem segment9 = myPane.AddPieSlice(50, Color.Yellow, Color.White, 45f, 0.2, "地瓜");
117 //标签背景颜色
118 segment2.LabelDetail.FontSpec.FontColor = Color.Red;
119![](/Images/OutliningIndicators/InBlock.gif)
120 // 总额
121 CurveList curves = myPane.CurveList;
122 double total = 0;
123 for (int x = 0; x < curves.Count; x++)
124 total += ((PieItem)curves[x]).Value;
125![](/Images/OutliningIndicators/InBlock.gif)
126 // 给Total赋值
127 TextObj text = new TextObj("Total 2004 Sales\n" + "$" + total.ToString() + "M",
128 0.18F, 0.40F, CoordType.PaneFraction);
129 //text的Location设置
130 text.Location.AlignH = AlignH.Center;
131 text.Location.AlignV = AlignV.Bottom;
132 //是否有边框
133 text.FontSpec.Border.IsVisible = false;
134 //区域的背景色
135 text.FontSpec.Fill = new Fill(Color.White, Color.FromArgb(255, 100, 100), 45F);
136 text.FontSpec.StringAlignment = StringAlignment.Center;
137 myPane.GraphObjList.Add(text);
138![](/Images/OutliningIndicators/InBlock.gif)
139 // 创建一个阴影区域,看起来有渐变
140 TextObj text2 = new TextObj(text);
141 //背景色
142 text2.FontSpec.Fill = new Fill(Color.Black);
143 //text2.Location
144 text2.Location.X += 0.008f;
145 text2.Location.Y += 0.01f;
146 myPane.GraphObjList.Add(text2);
147 masterPane.AxisChange(g);
148 }
149 else if (typesign == "line")
150![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
151 //设置标题和x,y坐标的文字
152 myPane.Title.Text = "Line Graph with Band Demo";
153 myPane.XAxis.Title.Text = "Sequence";
154 myPane.YAxis.Title.Text = "Temperature, C";
155![](/Images/OutliningIndicators/InBlock.gif)
156 // 设置初始数据
157![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) double[] y = { 100, 115, 75, 22, 98, 40, 10 };
158![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) double[] y2 = { 90, 100, 95, 35, 80, 35, 35 };
159![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) double[] y3 = { 80, 110, 65, 15, 54, 67, 18 };
160![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) double[] x = { 100, 200, 300, 400, 500, 600, 700 };
161
162 // 填充axis背景颜色和倾斜度
163 myPane.Chart.Fill = new Fill( Color.FromArgb( 255, 255, 245), Color.FromArgb( 255, 255, 190), 90F );
164![](/Images/OutliningIndicators/InBlock.gif)
165![](/Images/OutliningIndicators/InBlock.gif)
166 //创建一条红色的线Curve 1
167 LineItem myCurve = myPane.AddCurve( "收入", x, y, Color.Red );
168 //用红色填充,使符号不透明(可以填充你需要的颜色)
169 myCurve.Symbol.Fill = new Fill( Color.Red);
170![](/Images/OutliningIndicators/InBlock.gif)
171 // 创建一条Blue色的线Curve 2,"Curve2",你可以改变名称
172 myCurve = myPane.AddCurve( "成本 ", x, y2, Color.Blue );
173 // Make the symbols opaque by filling them with white
174 myCurve.Symbol.Fill = new Fill( Color.White );
175![](/Images/OutliningIndicators/InBlock.gif)
176 // 创建一条Green色的线Curve 3,"Curve3",你可以改变名称
177 myCurve = myPane.AddCurve( "时间", x, y3, Color.Green );
178 // Make the symbols opaque by filling them with white
179 myCurve.Symbol.Fill = new Fill( Color.White );
180![](/Images/OutliningIndicators/InBlock.gif)
181
182 //手动设置x axis范围
183 myPane.XAxis.Scale.Min = 0;
184 myPane.XAxis.Scale.Max = 800;
185 // 显示 the Y axis格子线
186 myPane.YAxis.MajorGrid.IsVisible = true;
187 myPane.YAxis.MinorGrid.IsVisible = true;
188 // 显示 the X axis格子线
189 // myPane.XAxis.MinorGrid.IsVisible = true;
190 // myPane.XAxis.MinorGrid.IsVisible = true;
191
192 //添加一栏加亮显示区域
193 //x为基准,y为box的上线,width为box的width,height为box的height,borderColor为边界颜色,fillColor为box的填充颜色
194 //public BoxObj(double x, double y, double width, double height, Color borderColor, Color fillColor);
195 BoxObj box = new BoxObj( 0, 100, 800, 30, Color.Empty,
196 Color.FromArgb( 150, Color.LightGreen ) );
197 box.Fill = new Fill( Color.White, Color.FromArgb( 200, Color.LightGreen ), 45.0F );
198 //使用BehindGrid区域,把加加亮显示区域叠在lines之下
199 box.ZOrder = ZOrder.F_BehindGrid;
200 myPane.GraphObjList.Add( box );
201![](/Images/OutliningIndicators/InBlock.gif)
202 //添加文本到加亮区域,并对其进行设置(text:要显示的文本,以那为基准(x,y),coordType为什么类型,AlignV设置左右对齐方式,AlignV设置上下对齐方式)
203 // public TextObj(string text, double x, double y, CoordType coordType, AlignH alignH, AlignV alignV);
204 TextObj text = new TextObj( "基准线", 750, 85, CoordType.AxisXYScale,
205 AlignH.Right, AlignV.Center );
206 //是否有背景
207 text.FontSpec.Fill.IsVisible = false;
208 //是否有边框
209 text.FontSpec.Border.IsVisible = false;
210 //文字是否粗体
211 text.FontSpec.IsBold = true;
212 //文字是否斜体
213 text.FontSpec.IsItalic = true;
214 //填充
215 myPane.GraphObjList.Add( text );
216![](/Images/OutliningIndicators/InBlock.gif)
217 }
218 //保存位置
219 // ZedGraphWeb1.RenderedImagePath = "~/Image/";
220 }
221 }
222![](/Images/OutliningIndicators/None.gif)
223![](/Images/OutliningIndicators/None.gif)
|