首页 > 学院 > 开发设计 > 正文

dotnetcharting 的简单使用

2019-11-17 02:48:05
字体:
来源:转载
供稿:网友

dotnetcharting 的简单使用

dotnetcharting 是一个很好用的图表控件,能画出很漂亮的报表,一般常用到的主要有柱状图、饼图、折线图三种。dotnetcharting 有web版、winform版多个版本可供使用,官方网址:http://www.dotnetcharting.com/ ,官网有很多示例(http://www.dotnetcharting.com/gallery/),而且有winform安装版示例和代码,如下图。dotnetcharting 有网上破解版的,去博客园或谷歌一搜一堆。说下个人感受,该控件是国外开发的,虽然说这个控件挺好用的,但是感觉这个控件应该在有xp系统的时候就应该有了吧?是国外剩下的技术,咱们一直在用别人不用的技术,捧为珍宝。有些技术有些人,有些本事就开始自大起来,小有成就的那点技术还藏着掖着。呵呵。。。接下来上干货,前两天刚使用dotnetcharting 做了个统计报表,代码如下:using System;using System.Collections.Generic;using System.Data;using System.Drawing;using dotnetCHARTING.WinForms;using StationChart.Model;using StationChart.Utility;using Chart = dotnetCHARTING.WinForms.Chart;using Series = dotnetCHARTING.WinForms.Series;using SeriesCollection = dotnetCHARTING.WinForms.SeriesCollection;namespace ManageSystem{ // <summary> // 作者:薛江涛 // 版本:V1.0.0 // 时间:2014/10/9 11:49:48 // </summary> public class ShowData { #region 属性 PRivate string _phaysicalimagepath;//图片存放路径 private string _xtitle;//图片x座标名称 private string _ytitle;//图片y座标名称 private string _seriesname;//图例名称 private int _picwidth;//图片宽度 private int _pichight;//图片高度 private DataTable _dt;//图片数据源 private DataSet _ds;//图片数据源 private Color _titleBoxColor;//图片标题背景色 private Font _titleBoxFont;//图片标题字体 private Color _chartAreaBackgroundColor;//图片背景颜色 private Font _xAxisLabelFont;//X轴柱状图值字体 private Font _yAxisLabelFont;//Y轴柱状图值字体 private Font _xAxisDefaultTickLabelFont;//X轴刻度字体 private Font _yAxisDefaultTickLabelFont;//Y轴刻度字体 private SeriesType _chartDefaultSeriesType;//图片类型 private ChartType _chartType;//图片类型 //private bool _isMonth; //是否是月显示 private int _staticColumnWidth;//设置柱状图每个单元格的宽度 private int _numberPercision;//设置数值小数点 /// <summary> /// 图片存放路径 /// </summary> public string PhaysicalImagePath { set { _phaysicalimagepath = value; } get { return _phaysicalimagepath; } } /// <summary> /// 图片标题 /// </summary> public string Title { get; set; } /// <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; } } /// <summary> /// 图片数据源 /// </summary> public DataSet DataSetSource { set { _ds = value; } get { return _ds; } } public int NumberPercision { set { _numberPercision = value; } get { return _numberPercision; } } public Color TitleBoxColor { get { return _titleBoxColor; } set { _titleBoxColor = value; } } public Font TitleBoxFont { get { return _titleBoxFont; } set { _titleBoxFont = value; } } public Color ChartAreaBackgroundColor { get { return _chartAreaBackgroundColor; } set { _chartAreaBackgroundColor = value; } } public Font XAxisLabelFont { get { return _xAxisLabelFont; } set { _xAxisLabelFont = value; } } public Font YAxisLabelFont { get { return _yAxisLabelFont; } set { _yAxisLabelFont = value; } } public Font XAxisDefaultTickLabelFont { get { return _xAxisDefaultTickLabelFont; } set { _xAxisDefaultTickLabelFont = value; } } public Font YAxisDefaultTickLabelFont { get { return _yAxisDefaultTickLabelFont; } set { _yAxisDefaultTickLabelFont = value; } } public SeriesType ChartDefaultSeriesType { get { return _chartDefaultSeriesType; } set { _chartDefaultSeriesType = value; } } public ChartType ChartType { get { return _chartType; } set { _chartType = value; } } //public bool IsMonth //{ // get { return _isMonth; } // set { _isMonth = value; } //} public ModelConseme.DateChartEnum SeriesTypeE { get; set; } public int StaticColumnWidth { get { return _staticColumnWidth; } set { _staticColumnWidth = value; } } #endregion #region 构造函数 public ShowData() { // // TODO: 在此处添加构造函数逻辑 // NumberPercision = 2; } public ShowData(string phaysicalImagePath, string title, string xTitle, string yTitle, string seriesName) { _phaysicalimagepath = phaysicalImagePath; Title = title; _xtitle = xTitle; _ytitle = yTitle; _seriesname = seriesName; } #endregion private static readonly object ThisLock = new object(); #region 输出柱形图 /// <summary> /// 柱形图 /// </summary> /// <returns></returns> public void CreateColumn(Chart chart) { try { //清空图片 chart.SeriesCollection.Clear(); //标题框设置 //标题的颜色 chart.TitleBox.Label.Color = _titleBoxColor; //标题字体设置 chart.TitleBox.Label.Font = _titleBoxFont; //控制柱状图颜色 chart.ShadingEffectMode = ShadingEffectMode.One; chart.TitleBox.Position = TitleBoxPosition.None; //图表背景颜色 chart.ChartArea.Background.Color = ChartAreaBackgroundColor; //1.图表类型 chart.DefaultSeries.Type = _chartDefaultSeriesType;// SeriesType.Column; //chart.DefaultSeries.Type = SeriesType.Cylinder; //2.图表类型 //柱状图 //chart.Type = ChartType.TreeMap; ////横向柱状图 chart.Type = _chartType;// ChartType.ComboHorizontal ////横向柱状图 //chart.Type =_chartType;// ChartType.Gantt; ////饼状图 //chart.Type = ChartType.Pies; //y轴图表阴影颜色 //chart.YAxis.AlternateGridBackground.Color = Color.FromArgb(255, 250, 250, 250); chart.LegendBox.HeaderLabel = new Label("图表说明", new Font("Microsoft Sans Serif", 10F, FontStyle.Bold, GraphicsUnit.Point, 134)); //chart.LegendBox.HeaderLabel.Font = new Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, 134); chart.LegendBox.Label.Font = new Font("Microsoft Sans Serif", 9F, FontStyle.Bold, GraphicsUnit.Point, 134); chart.Palette = new Color[] { Color.FromArgb(0, 156, 255), Color.FromArgb(255, 99, 49), Color.FromArgb(49, 255, 49), Color.FromArgb(255, 255, 0), }; chart.Title = Title; //X轴柱状图值字体 chart.XAxis.Label.Text = _xtitle; chart.XAxis.Label.Font = _xAxisLabelFont; //设置X轴刻度值说明字体 chart.XAxis.DefaultTick.Label.Font = _xAxisDefaultTickLabelFont; chart.XAxis.StaticColumnWidth = _staticColumnWidth; //每个单元格的宽度 //Y轴柱状图值字体 chart.YAxis.Label.Text = _ytitle; chart.YAxis.Label.Font = _yAxisLabelFont; //设置Y轴刻度值说明字体 chart.YAxis.DefaultTick.Label.Font = _yAxisDefaultTickLabelFont; //Y轴箭头标示 chart.XAxis.Name = XTitle; if (_chartType == ChartType.ComboHorizontal) { chart.XAxis.TickLabelPadding = 10; chart.XAxis.Line.StartCap = System.Drawing.Drawing2D.LineCap.Square; chart.XAxis.Line.EndCap = System.Drawing.Drawing2D.LineCap.ArrowAnchor; chart.XAxis.Line.Width = 5;//箭头宽度 chart.XAxis.Line.Color = Color.Gray; } else { chart.YAxis.TickLabelPadding = 10; chart.YAxis.Line.StartCap = System.Drawing.Drawing2D.LineCap.Square; chart.YAxis.Line.EndCap = System.Drawing.Drawing2D.LineCap.ArrowAnchor; chart.YAxis.Line.Width = 5;//箭头宽度 chart.YAxis.Line.Color = Color.Gray; //显示值格式化(小数
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表