DotNetCharting是一個非常棒的.NET圖表控件,對中文支持非常好,而且操作方便,開發快速,既有for webform 也有for winform的,而且.net1.1和2.0都有支持。它的官方地址是http://www.dotnetcharting.com/
本站也提供了DotNetCharting破解版本下載:
http://files.cnblogs.com/dreamof/dotnetcharting.rar
強烈推薦一下DotNetCharting的demo地址:
這個是所有的 DEMO 演示 http://www.dotnetcharting.com/demo.aspx
這個是 Online Documentation http://www.dotnetcharting.com/documentation/v4_4/webframe.html 裏面會有詳細的說明和用法。
DotNetCharting的簡單使用方法:
1.把\bin\dotnetCHARTING.dll添加到工具箱,並且添加引用;
2.把控件拖到你的網頁上,然後添加引用using dotnetCHARTING;就可以用了;
3.接下來是自己寫的對DotNetCharting操作的封裝類,以便於在程序裏調用。
using System;
using System.Data;
using System.Text;
using dotnetCHARTING;
namespace FLX.ComplexQuery
{
/// <summary>
/// 彭建軍
/// 根據數據動態生成圖形(柱形圖、餅圖、曲線圖)
/// 2008-06-19
/// </summary>
public class ShowData
{
#region 屬性
private string _phaysicalimagepath;//圖片存放路徑
private string _title; //圖片標題
private string _xtitle;//圖片x座標名稱
private string _ytitle;//圖片y座標名稱
private string _seriesname;//圖例名稱
private int _picwidth;//圖片寬度
private int _pichight;//圖片高度
private DataTable _dt;//圖片數據源
/// <summary>
/// 圖片存放路徑
/// </summary>
public string PhaysicalImagePath
{
set{_phaysicalimagepath=value;}
get{return _phaysicalimagepath;}
}
/// <summary>
/// 圖片標題
/// </summary>
public string Title
{
set{_title=value;}
get{return _title;}
}
/// <summary>
/// 圖片標題
/// </summary>
public string XTitle
{
set{_xtitle=value;}
get{return _xtitle;}
}
/// <summary>
/// 圖片標題
/// </summary>
public string YTitle
{
set{_ytitle=value;}
get{return _ytitle;}
}
/// <summary>
/// 圖例名稱
/// </summary>
public string SeriesName
{
set{_seriesname=value;}
get{return _seriesname;}
}
/// <summary>
/// 圖片寬度
/// </summary>
public int PicWidth
{
set{_picwidth=value;}
get{return _picwidth;}
}
/// <summary>
/// 圖片高度
/// </summary>
public int PicHight
{
set{_pichight=value;}
get{return _pichight;}
}
/// <summary>
/// 圖片數據源
/// </summary>
public DataTable DataSource
{
set{_dt=value; }
get{return _dt;}
}
#endregion
#region 構造函數
public ShowData()
{
//
// TODO: 在此處添加構造函數邏輯
//
}
public ShowData(string PhaysicalImagePath,string Title,string XTitle,string YTitle,string SeriesName)
{
_phaysicalimagepath=PhaysicalImagePath;
_title=Title;
_xtitle=XTitle;
_ytitle=YTitle;
_seriesname=SeriesName;
}
#endregion
#region 輸出柱形圖
/// <summary>
/// 柱形圖
/// </summary>
/// <returns></returns>
public void CreateColumn(dotnetCHARTING.Chart chart)
{
chart.Title=this._title;
chart.XAxis.Label.Text=this._xtitle;
chart.YAxis.Label.Text=this._ytitle;
chart.TempDirectory =this._phaysicalimagepath;
chart.Width = this._picwidth;
chart.Height = this._pichight;
chart.Type = ChartType.Combo ;
chart.Series.Type =SeriesType.Cylinder;
chart.Series.Name = this._seriesname;
chart.Series.Data = this._dt;
chart.SeriesCollection.Add();
chart.DefaultSeries.DefaultElement.ShowValue = true;
chart.ShadingEffect = true;
chart.Use3D = false;
chart.Series.DefaultElement.ShowValue =true;
}
#endregion
#region 輸出餅圖
/// <summary>
/// 餅圖
/// </summary>
/// <returns></returns>
public void CreatePie(dotnetCHARTING.Chart chart)
{
chart.Title=this._title;
chart.TempDirectory =this._phaysicalimagepath;
chart.Width = this._picwidth;
chart.Height = this._pichight;
chart.Type = ChartType.Pie;
chart.Series.Type =SeriesType.Cylinder;
chart.Series.Name = this._seriesname;
chart.ShadingEffect = true;
chart.Use3D = false;
chart.DefaultSeries.DefaultElement.Transparency = 20;
chart.DefaultSeries.DefaultElement.ShowValue = true;
chart.PieLabelMode = PieLabelMode.Outside;
chart.SeriesCollection.Add(getArrayData());
chart.Series.DefaultElement.ShowValue = true;
}
private SeriesCollection getArrayData()
{
SeriesCollection SC = new SeriesCollection();
DataTable dt = this._dt;
for(int i=0; i < dt.Rows.Count; i++)
{
Series s = new Series();
s.Name = dt.Rows[i][0].ToString();
Element e = new Element();
// 每元素的名稱
e.Name = dt.Rows[i][0].ToString();
// 每元素的大小數值
e.YValue=Convert.ToInt32(dt.Rows[i][1].ToString());
s.Elements.Add(e);
SC.Add(s);
}
return SC;
}
#endregion
#region 輸出曲線圖
/// <summary>
/// 曲線圖
/// </summary>
/// <returns></returns>
public void CreateLine(dotnetCHARTING.Chart chart)
{
chart.Title=this._title;
chart.XAxis.Label.Text=this._xtitle;
chart.YAxis.Label.Text=this._ytitle;
chart.TempDirectory =this._phaysicalimagepath;
chart.Width = this._picwidth;
chart.Height = this._pichight;
chart.Type = ChartType.Combo ;
chart.Series.Type =SeriesType.Line;
chart.Series.Name = this._seriesname;
chart.Series.Data = this._dt;
chart.SeriesCollection.Add();
chart.DefaultSeries.DefaultElement.ShowValue = true;
chart.ShadingEffect = true;
chart.Use3D = false;
chart.Series.DefaultElement.ShowValue =true;
}
#endregion
#region 調用說明及範例
// 在要顯示統計圖的頁面代碼直接調用,方法類似如下:
//
// ShowData show=new ShowData();
// show.Title ="2008年各月消費情況統計";
// show.XTitle ="月份";
// show.YTitle ="金額(萬元)";
// show.PicHight =300;
// show.PicWidth =600;
// show.SeriesName ="具體詳情";
// show.PhaysicalImagePath ="ChartImages";
// show.DataSource =this.GetDataSource();
// show.CreateColumn(this.Chart1);
#endregion
}
}