ZedGraph
ZedGraph官方对ZedGraph的解释是:ZedGraph是一个针对用c#编官吏的类库,在WinForm下和ASP.NET都有对应的控件,它可以绘制出OWC中所能支持的图表类型,如2D或者3D的饼图、柱状图等。尽管它提供了许多详尽的属性以供实现灵活的控件,但是使用默认的设置就能很简单地绘制出多种类型的图表。官网:http://www.zedgraph.org
ZedGraph控件常用属性
具体实例:
需下载并添加ZedGraph.dll和ZedGraph.Web.dll
ZedDemo.aspx //显示效果页面
柱状图:
折线图:
线形图:
饼图:
ZedGraph_Other.aspx页面 //生成除饼图以外的其它类型
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ZedGraph_Other.aspx.cs" Inherits="ZedGraph_Other" %>
<%@ Register Assembly="ZedGraph.Web" Namespace="ZedGraph.Web" TagPrefix="cc1" %>
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using ZedGraph;
using ZedGraph.Web;
using System.Drawing;
public partial class ZedGraph_Other : System.Web.UI.Page
{
protected override void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}
private void InitializeComponent()
{
ZedGraphWeb1.RenderGraph += new ZedGraphWebControlEventHandler(zedgraph_Pie_RenderGraph);
}
///
/// 绘制报表
///
///
///
///
void zedgraph_Pie_RenderGraph(ZedGraphWeb webObject, Graphics g, MasterPane pane)
{
GraphPane myPane = pane[0];
myPane.Chart.Fill = new Fill(Color.LightYellow);
//设置报表标题
myPane.Title.Text = "网站访问统计";
//设置报表X轴标题
myPane.XAxis.Title = new AxisLabel("月份", "宋体", 24, Color.Green, true, false, false);
//设置报表Y轴标题
myPane.YAxis.Title = new AxisLabel("IP", "宋体", 24, Color.Green, true, false, false);
//定义在X轴要显示的分类
string[] labels = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" };
//设置X轴的显示分类内容
myPane.XAxis.Scale.TextLabels = labels;
//设置X轴分类显示方式为text
myPane.XAxis.Type = AxisType.Text;
//分别为两个用户创建值
PointPairList pointList1 = new PointPairList();
PointPairList pointList2 = new PointPairList();
Random random = new Random();
for (int i = 1; i < 13; i++)
{
int x = i;
int y1 = random.Next(3000) + 500;
int y2 = random.Next(5000) + 1000;
pointList1.Add(x, y1);
pointList2.Add(x, y2);
}
//显示方式-------------------------------------------------------------------------------------
//在此myPane后面的方法决定了显示什么报表类型,如下格式:
//myPane.AddCurve("匿名用户", pointList1, Color.Red);
//myPane.AddCurve("会员用户", pointList2, Color.Blue);
//根据不同的参数显示不同的类型
if (Request.QueryString["type"] != null)
{
string type = Request.QueryString["type"].ToString();
switch (type)
{
case "Bar":
//显示圆状图
myPane.AddBar("匿名用户", pointList1, Color.Red);
myPane.AddBar("会员用户", pointList2, Color.Blue);
break;
case "Curve":
//显示折线图
myPane.AddCurve("匿名用户", pointList1, Color.Red);
myPane.AddCurve("会员用户", pointList2, Color.Blue);
break;
case "Stick":
//显示线状图
myPane.AddStick("匿名用户", pointList1, Color.Red);
myPane.AddStick("会员用户", pointList2, Color.Blue);
break;
default:
//显示圆状图
myPane.AddBar("匿名用户", pointList1, Color.Red);
myPane.AddBar("会员用户", pointList2, Color.Blue);
break;
}
}
else
{
//添加两个用户
myPane.AddCurve("匿名用户", pointList1, Color.Red);
myPane.AddCurve("会员用户", pointList2, Color.Blue);
}
//----------------------------------------------------------------------------------------------
//设置报表外部的渐变颜色
myPane.Fill = new Fill(Color.White, Color.FromArgb(200, 200, 255), 45.0f);
//设置报表内部的渐变颜色
myPane.Chart.Fill = new Fill(Color.White, Color.LightGoldenrodYellow, 45.0f);
//刷新
pane.AxisChange(g);
}
protected void Page_Load(object sender, EventArgs e)
{
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ZedGraph_Pie.aspx.cs" Inherits="ZedGraph_Pie" %>
<%@ Register Assembly="ZedGraph.Web" Namespace="ZedGraph.Web" TagPrefix="cc1" %>
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using ZedGraph;
using ZedGraph.Web;
using System.Drawing;
public partial class ZedGraph_Pie : System.Web.UI.Page
{
protected override void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}
private void InitializeComponent()
{
ZedGraphWeb1.RenderGraph += new ZedGraph.Web.ZedGraphWebControlEventHandler(ZedGraphWeb1_RenderGraph);
}
void ZedGraphWeb1_RenderGraph(ZedGraph.Web.ZedGraphWeb webObject, System.Drawing.Graphics g, ZedGraph.MasterPane pane)
{
GraphPane myPane = pane[0];
myPane.Chart.Fill = new Fill(Color.LightYellow);
myPane.Title.Text = "文化程度比率";
string[] labels = new string[6];
double[] values = new double[6];
labels[0] = "小学";
labels[1] = "初中";
labels[2] = "高中";
labels[3] = "专科";
labels[4] = "本科";
labels[5] = "研究生";
values[0] = 5000;
values[1] = 6000;
values[2] = 7000;
values[3] = 8000;
values[4] = 9000;
values[5] = 10000;
myPane.AddPieSlices(values, labels);
pane.AxisChange();
}
protected void Page_Load(object sender, EventArgs e)
{
}
}
如果希望报表在网页中以标签方式显示可以在前台页面做如下设置:RenderMode="ImageTag"
具体实例代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ZedGraphDemo.aspx.cs" Inherits="ZedGraphDemo" %>
<%@ Register Assembly="ZedGraph.Web" Namespace="ZedGraph.Web" TagPrefix="cc1" %>
在ZedDemo.aspx页面显示效果如下:
本实例相关源码下载地址为:
http://download.csdn.net/detail/houxh86/3680711