ZedGraph画曲线柱状图.docx
- 文档编号:30656798
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:15
- 大小:18.17KB
ZedGraph画曲线柱状图.docx
《ZedGraph画曲线柱状图.docx》由会员分享,可在线阅读,更多相关《ZedGraph画曲线柱状图.docx(15页珍藏版)》请在冰豆网上搜索。
ZedGraph画曲线柱状图
使用ZedGraph画曲线柱状图
刚接触到ZedGraph,到网上搜素到的方法基本上都是使用临时文件来存储图片,然后再显示,但是临时图片太多的话会占用大量的空间。
很不划算。
最后看到有人说把RenderMode="RawImage"就可以了,但是会出现乱码。
如何解决呢?
下面是我的方法。
新建一个目录,命名为bin,把文件ZedGraph.Web.dll,ZedGraph.dll拷到bin目录下面。
建立文件tuppian.aspx。
其内容为:
<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="tuppian.aspx.cs"Inherits="tuppian"%>
<%@Registerassembly="ZedGraph.Web"namespace="ZedGraph.Web"tagprefix="cc1"%>
<%--
特别注意了:
本页面不要有HTML代码,和代码。
不然会出现乱码,RenderMode="RawImage"一定要设置RawImage,不然会报错。
--%>
ZedGraphWebID="ZedGraphWeb1"runat="server"RenderMode="RawImage">
ZedGraphWeb>
tuppian.aspx.cs为:
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Drawing;
usingZedGraph;
usingZedGraph.Web;
publicpartialclasstuppian:
System.Web.UI.Page
{
DarwGrapClassdg=newDarwGrapClass();
protectedvoidPage_Load(objectsender,EventArgse)
{
}
protectedoverridevoidOnInit(EventArgse)
{
InitializeComponent();
base.OnInit(e);
}
privatevoidInitializeComponent()
{
stringid=Request.QueryString["id"];
switch(id)
{
case"1":
DrawLine();
break;
case"2":
DrawPie();
break;
default:
DrawBar();
break;
}
}
privatevoidDrawBar()
{
dg.Type=AnalyticsType.Bar;
dg.Title="用户访问柱状图";
dg.XAxisTitle="月份";
dg.YAxisTitle="用户访问数量";
Randomrand=newRandom();
string[]aa={"企业1","企业2","企业3"};
for(inti=0;i<2;i++)
{
ZedGraph.PointPairListppl=newZedGraph.PointPairList();
for(intj=0;j<12;j++)
{
doublex=rand.Next(10);
doubley=rand.NextDouble()*100;
ppl.Add(x,y);
//dg.NameList.Add((j+1).ToString()+"月");
//ppl.Add(j+1,j+1);以此递增
//dg.NameList.Add("第"+j.ToString()+"月份");
}
dg.DataSource.Add(ppl);
dg.LabelList.Add("企业"+i.ToString());
//dg.NameList.Add((i+1).ToString()+"月");
}
for(intk=0;k<12;k++)
{
dg.NameList.Add((k+1).ToString()+"月");
}
dg.y_step=5;
dg.DarwGrap(ZedGraphWeb1);
}
privatevoidDrawPie()
{
dg.Type=AnalyticsType.Pie;
dg.Title="用户访问饼图";
Randomrand=newRandom();
for(inti=0;i<3;i++)
{
dg.ScaleData.Add((i+2)*rand.Next(100));
dg.NameList.Add("企业:
"+i.ToString());//各个部分所代表的含义
}
dg.DarwGrap(ZedGraphWeb1);
}
privatevoidDrawLine()
{
dg.Type=AnalyticsType.Line;
dg.Title="用户访问曲线图";
dg.XAxisTitle="月份";
dg.YAxisTitle="用户访问数量";
Randomrand=newRandom();
for(inti=0;i<2;i++)
{
ZedGraph.PointPairListppl=newZedGraph.PointPairList();
//数据源添加
for(doublex=0;x<12;x+=1.0)
{
doubley=rand.NextDouble()*100;
ppl.Add(x,y);
}
//从数据库中取得
//for(inti=0;i //{ // ppl.Add(i,this.dt.Rows[i].Cells[1].Text.Trim()); //} //dg.NameList.Add("第"+i.ToString()+"月份"); dg.DataSource.Add(ppl); dg.NameList.Add("企业: "+i.ToString()); } //改变x组的显示字符,当然也可以绑定数据库,从数据库中取得。 for(intk=0;k<12;k++) { dg.LabelList.Add((k+1).ToString()+"月"); } //for(inti=0;i //{ // dg.LabelList.Add(this.dt.Rows[i].Cells[0].Text.Trim()); //} dg.DarwGrap(ZedGraphWeb1); } } 新建一个类DarwGrapClass.cs,放在App_Code目录下面。 其内容为: usingSystem; usingSystem.Data; usingSystem.Configuration; usingSystem.Web; usingSystem.Web.Security; usingSystem.Web.UI; usingSystem.Web.UI.HtmlControls; usingSystem.Web.UI.WebControls; usingSystem.Web.UI.WebControls.WebParts; usingSystem.Drawing; usingZedGraph; usingZedGraph.Web; usingSystem.Collections.Generic; publicenumAnalyticsType { Line,//折线图 Line2,//带阴影区域的折线图 Curve,//带星的折线图 Curve2,//带阴影区域的星行折线图 Bar,//柱状图 Graph, Pie//饼图 }; publicclassDarwGrapClass { publicDarwGrapClass() { // //TODO: 在此处添加构造函数逻辑 // } #regionPrivateAttribute /**/ /// ///默认颜色种类 /// privateList /**/ /// ///统计的个数 /// privateintCount; #endregion //PublicProperty; #regionPublicProperty /**/ /// ///统计图的名称 /// publicstringTitle; /**/ /// ///横轴的名称(饼图不需要) /// publicstringXAxisTitle; /**/ /// ///纵轴的名称(饼图不需要) /// publicstringYAxisTitle; /**/ /// ///显示的曲线类型: Line,Bar,Pie /// publicAnalyticsTypeType; /**/ /// ///折线图和柱状图的数据源 /// publicList /**/ /// ///饼图的数据源 /// publicList /**/ /// ///各段数据的颜色 /// publicList /**/ /// ///各段数据的名称 /// publicList /**/ /// ///用于柱状图,每个圆柱体表示的含义 /// publicList publicdoubley_step; publicdoublex_step; #endregion publicvoidDarwGrap(ZedGraphWebZedGraph) { ZedGraph.RenderGraph+=newZedGraph.Web.ZedGraphWebControlEventHandler(zedGraphControl_RenderGraph); } privatevoidInitDefaultColors() { 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.Cyan); defaultColors.Add(Color.DarkSeaGreen); defaultColors.Add(Color.Indigo); } /**/ /// ///如果属性为空则初始化属性数据 /// privatevoidInitProperty() { InitDefaultColors(); if(string.IsNullOrEmpty(Title)) { Title="未命名统计图"; } if(string.IsNullOrEmpty(XAxisTitle)) { XAxisTitle="横轴"; } if(string.IsNullOrEmpty(YAxisTitle)) { YAxisTitle="纵轴"; } if(Type==AnalyticsType.Pie) { Count=ScaleData.Count; } else { Count=DataSource.Count; } if(Colors.Count==0||Colors.Count! =Count) { Randomr=newRandom(); inttempIndex=0; List for(inti=0;i { tempIndex=r.Next(defaultColors.Count); if(tempIndexList.Contains(tempIndex)) { i--; } else { tempIndexList.Add(tempIndex); Colors.Add(defaultColors[tempIndex]); } } } if(NameList.Count==0) { if(Type==AnalyticsType.Bar) { for(inti=1;i { NameList.Add("第"+i.ToString()+"组"); } } else { for(inti=1;i { NameList.Add("第"+i.ToString()+"组"); } } } if(LabelList.Count==0) { for(inti=0;i { LabelList.Add("含义"+i.ToString()); } } if(x_step==0.0) x_step=5; if(y_step==0.0) y_step=5; } /**/ /// ///画图 /// /// /// /// privatevoidzedGraphControl_RenderGraph(ZedGraphWebzgw,System.Drawing.Graphicsg,ZedGraph.MasterPanemasterPane) { InitProperty(); GraphPanemyPane=masterPane[0]; myPane.Title.Text=Title; myPane.XAxis.Title.Text=XAxisTitle; myPane.YAxis.Title.Text=YAxisTitle; //if(true) //{ //DrawMessage(myPane,"yiafdhaskjhfasfksahfasdlhfaslflasgfasglgsadi"); //pane.AxisChange(g); //return; //} switch(Type) { caseAnalyticsType.Line: DrawLine(myPane); break;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ZedGraph 曲线 柱状图