日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ZedGraph使用经验

發(fā)布時間:2023/12/20 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ZedGraph使用经验 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

開源的統(tǒng)計圖控件中基本常用的是OpenFlashChar和ZedGraph,今天就先來講講ZedGraph的使用。

ZedGraph資源

  • ZedGraph來源:http://sourceforge.net/project/showfiles.php?group_id=114675
  • ZedGraph相關(guān)例子資源:http://zedgraph.org/wiki/index.php?title=Sample_Graphs?

?

ZedGraph的特點:

  • 第一,可以先生成圖片后再顯示,這對一些多用戶并發(fā)有點幫助。(RenderMode.ImageTag)
  • 第二,可以動態(tài)生成,不用保存文件,可以減少IO的讀寫消耗。(RenderMode.RawImage)
  • 第三,比較多的呈現(xiàn)方式,比如曲線圖、柱狀圖、餅圖等。?

?

ZedGraph的缺點:

  • 第一,編碼的時候,在設(shè)置屬性時太爛了,一點注釋都沒有,不要說是中文的啦,就連英文都沒有,太不方便了。
  • 第二,圖表的顯示比較簡陋,沒有OpenFlashChar來得好看。

?

注意事宜

  • 第一,當(dāng)前的最新版本是5.1.5,我以前也使用過4.3.4的版本,這兩個版本的差別很大,很多屬性都已經(jīng)不存在了,面向?qū)ο蟮母心羁赡芗訌娏瞬簧?#xff0c;也清晰了不少,因為現(xiàn)在的屬性設(shè)置都是先實體,再屬性了,而以前就比較混亂了。所以在使用不同的版本的時候要注意這點。
  • 第二,在Windows Forms和 ASP.Net Web Form中使用是不同。

?

一個簡單的入門例子?

  • 第一,在 bin文件夾中加入 Zedgraph.dll 和Zedgraph.web.dll
  • 第二,添加這兩個dll的引用;
  • 第三,在網(wǎng)站下要創(chuàng)建一個空文件夾,名稱為 'ZedGraphImages',這個文件夾名稱是默認(rèn)的,要修改這個文件夾名稱,可以修改屬性 RenderedImagePath,CacheDuration緩存的持續(xù)時間。ZedGraph會生成一圖片存放在緩存的目錄中,顯示圖片時,會生成一個img標(biāo)簽代替ZedGraphWeb標(biāo)簽,并在一個時間內(nèi),"欺騙"瀏覽器加載這張圖片;
  • 第四,在 aspx文件中加入:<%@ Register TagPrefix="zgw" Namespace="ZedGraph.Web" Assembly="ZedGraph.Web" %>;在html中加入<zgw:ZedGraphWeb ID="ZedGraphWeb1" runat="server" Width="300" Height="130" RenderMode="ImageTag"></zgw:ZedGraphWeb>??
  • 第五,在cs文件中添加引用: using ZedGraph;using ZedGraph.Web;using System.Drawing;//顏色
  • 第六,注冊事件,this.ZedGraphWeb1.RenderGraph += new ZedGraph.Web.ZedGraphWebControlEventHandler(GetImage);//注冊事件
  • 第七,寫方法,private void GetImage(ZedGraphWeb zgw, Graphics g, MasterPane masterPane){}
  • 具體代碼可以參考ZedGraph webform 初學(xué)小例子 (代碼有詳細(xì)解釋)

一些經(jīng)驗

  • 傳遞數(shù)據(jù)的時候可以使用字典:IDictionary<int, int> dic;?
  • 一些屬性設(shè)置
myPane.XAxis.Scale.FontSpec.Size?=?30;//設(shè)置x軸的文字大小.
myPane.YAxis.Scale.FontSpec.Size?=?30;//設(shè)置y軸的文字大小.
myPane.YAxis.MajorGrid.IsVisible?=?true;//設(shè)置虛線.
myPane.Chart.Border.IsVisible?=?false;//圖表區(qū)域的邊框設(shè)置.
myPane.Legend.IsVisible?=?false;//圖表的注釋標(biāo)簽顯示設(shè)置項目.
  • 動態(tài)根據(jù)傳入的數(shù)據(jù)顯示的方法
????????///?<summary>
????????
///?曲線圖.
????????
///?</summary>
????????public?void?CreateLineChart(GraphPane?myPane,?IDictionary<int,?int>?dic,?string?title,?string?xField,?string?yFields,?string?format)
????????{
????????????myPane.XAxis.Scale.FontSpec.Size?
=?30;//設(shè)置x軸的文字大小.
????????????myPane.YAxis.Scale.FontSpec.Size?=?30;//設(shè)置y軸的文字大小.
????????????myPane.YAxis.MajorGrid.IsVisible?=?true;//設(shè)置虛線.
????????????myPane.Chart.Border.IsVisible?=?false;//圖表區(qū)域的邊框設(shè)置.
????????????myPane.Legend.IsVisible?=?false;//圖表的注釋標(biāo)簽顯示設(shè)置項目.

????????????
int?rows?=?dic.Count;
????????????
double[]?arrY?=?new?double[rows];
????????????
double[]?arrX?=?new?double[rows];
????????????
string[]?labels?=?new?string[rows];

????????????
int?i?=?0;
????????????
foreach?(KeyValuePair<int,?int>?kvp?in?dic)
????????????{
????????????????arrX[i]?
=?Convert.ToDouble(kvp.Key);
????????????????arrY[i]?
=?Convert.ToDouble(kvp.Value);
????????????????labels[i]?
=?kvp.Key.ToString();
????????????????i
++;
????????????}

????????????LineItem?myCurve?
=?myPane.AddCurve(title,?arrX,?arrY,?Color.Red,?SymbolType.Square);
????????????myCurve.Symbol.Fill?
=?new?Fill(Color.Blue,?Color.White,?Color.Blue);//填充這個藍(lán)條,讓這藍(lán)條看起來有3D的效果
????????????myCurve.Line.Width?=?2;

????????????myPane.XAxis.Scale.TextLabels?
=?labels;?//X軸的說明文字
????????????myPane.XAxis.Type?=?AxisType.Text;
????????}
  • 小圖的屬性設(shè)置
????????????myPane.XAxis.Scale.FontSpec.Size?=?30;//設(shè)置x軸的文字大小.
????????????myPane.YAxis.Scale.FontSpec.Size?=?30;//設(shè)置y軸的文字大小.
????????????myPane.YAxis.MajorGrid.IsVisible?=?true;//設(shè)置虛線.
????????????myPane.Chart.Border.IsVisible?=?false;//圖表區(qū)域的邊框設(shè)置.
????????????myPane.Legend.IsVisible?=?false;//圖表的注釋標(biāo)簽顯示設(shè)置項目.

  • 小圖的屬性設(shè)置刻度問題
????????????myPane.YAxis.Scale.Min?=?0;//設(shè)置只顯示正半軸.
????????????myPane.YAxis.Scale.MajorStep?=?1;//設(shè)置刻度為1;
  • 屬性分布圖,From?Arbean.Wu

?

?

?

相關(guān)資料

  • http://weblogs.asp.net/scottgu/archive/2008/11/24/new-asp-net-charting-control-lt-asp-chart-runat-quot-server-quot-gt.aspx
  • http://zedgraph.org/wiki/index.php?title=Sample_Graphs
  • 波浪線圖:http://zedgraph.org/wiki/index.php?title=Dual-Y_Demo
  • RenderMode.ImageTag例子:http://zedgraph.org/wiki/index.php?title=Use_RenderMode.ImageTag_in_a_web_page
    RenderMode.RawImage例子:http://zedgraph.org/wiki/index.php?title=Use_RenderMode.RawImage_in_a_web_page
  • ZedGraph webform 初學(xué)小例子 (代碼有詳細(xì)解釋)

    ZedGraph屬性

    一個簡單例子
  • 開源圖表控件ZedGraph控件的研究(1)
  • ZedGraph屬性\方法介紹
  • http://zedgraph.sourceforge.net/samples.html
  • 總結(jié)

    以上是生活随笔為你收集整理的ZedGraph使用经验的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。