本文转载自: https://www.cnblogs.com/xiaogangqq123/archive/2010/06/24/1764282.html 作者:xiaogangqq123 转载请注明该声明。

上一篇文章写了用dotnetCHARTING 制作柱形图,折线图和圆饼图 园友一直在推荐用微软的MSChart..于是,这几天工作之余研究了一下,其中也发现了不少问题.

  

  首先当然需要下载MSChart 下载地址 而且微软官方有个很不错的实例代码可以帮助学习使用MSChart 下载地址,当然不用我说.大家也知道的.需要NET Framework 3.5以及配合VS2008 sp1来使用了,至于vs2010好像还没有发现MSChart ,希望有知道的朋友给点帮助.

  安装完MSChart后 在vs2008报表一栏里会出现MSChart控件..二话不说 拖到页面.自动生成如下代码:

  

代码

< asp:Chart ID ="Chart1" runat ="server" >
< Series >
< asp:Series Name ="Series1" >
</ asp:Series >
</ Series >
< ChartAreas >
< asp:ChartArea Name ="ChartArea1" >
</ asp:ChartArea >
</ ChartAreas >
</ asp:Chart >

相信在你们看过微软的实例后对这些属性会有一些了解滴..

然后进入正题,本文也主要介绍 MSChart的 折线图,圆饼图,和柱状图, 因为这三种本人感觉是最常用的.

对于这三种用MSChart来实现的话本人感觉比较困难的就是数据绑定带来的麻烦,因为在我们平时使用的时候基本都是动态的数据,

而微软实例基本都是写死在页面上的数据, 而且网上这方面资料也比较少,只能自己动手实践啦.

先介绍几种MSChart的数据绑定方式,

第一种,也是最通俗的一种

Chart1.DataSource = GetData.GetChartData();
Chart1.Series[ " ChartArea1 " ].XValueMember = " home " ;
Chart1.Series[ " ChartArea1 " ].YValueMembers = " num1 " ;

第二种往后都是通过List的集合形式绑定数据,这里就用变量list来代替了.一些变量都是对应实体类的名称当然也对应数据库字段

Chart1.DataBindTable(list, " home " );

"home"是 x轴坐标

第三种,home  分组,Time X轴坐标,num1 y轴坐标

Chart1.DataBindCrossTable(list, " home " , " Time " , " num1 " , " Label=num1,ToolTip=num1 " );

第三种,折线图绑定方式

Chart1.Series[ 0 ].Points.DataBind(list, " home " , " num1 " , " Label=num1,ToolTip=num1 " );

第四种,折线图绑定方式

代码

Chart1.DataBindCrossTable(list, " home " , " Time " , " num1 " , " Label=num1,ToolTip=num1 " );
// 绘制线条
MarkerStyle marker = MarkerStyle.Square;
foreach (Series ser in Chart1.Series)
{
ser.ShadowOffset = 1 ;
ser.BorderWidth = 2 ;
ser.ChartType = SeriesChartType.Line;
ser.MarkerSize = 12 ;
ser.MarkerStyle = marker;
ser.MarkerBorderColor = Color.FromArgb( 64 , 64 , 64 );
ser.Font = new Font( " Trebuchet MS " , 8 , FontStyle.Regular);
marker ++ ;
}

第五种:

Chart1.Series[ " Series1 " ].Points.DataBindXY(list, " home " , list, " num1 " );

我所了解的就这么几种了,有朋友知道有更好的绑定方式不妨贴上代码来.

下面介绍下MSChart下的柱形图

常用的属性这篇博客都有介绍,在这里我就不罗嗦了..http://www.cnblogs.com/wenjl520/archive/2009/05/16/1458461.html

代码

// 是否启用3D显示
Chart1.ChartAreas[ 0 ].Area3DStyle.Enable3D = true ;

// 显示类型,可以是柱形 折线等等
Chart1.Series[ 0 ].ChartType = SeriesChartType.Line;

/// / Draw as 3D Cylinder
Chart1.Series[ 0 ][ " DrawingStyle " ] = " Cylinder " ;

// 像素点见宽度
Chart1.Series[ 0 ][ " PointWidth " ] = " 0.8 " ;

// 是否显示数值
Chart1.Series[ 0 ].IsValueShownAsLabel = true ;

// X轴数据显示间隔
Chart1.ChartAreas[ 0 ].AxisX.Interval = 1 ;

// 直角坐标显示,
Chart1.ChartAreas[ 0 ].Area3DStyle.IsRightAngleAxes = false ;

// 是否群集在一起
Chart1.ChartAreas[ 0 ].Area3DStyle.IsClustered = false ;

// 转动X轴角度
Chart1.ChartAreas[ 0 ].Area3DStyle.Inclination = 40 ;

// 转动Y轴角度
Chart1.ChartAreas[ 0 ].Area3DStyle.Rotation = 20 ;

foreach (Series ser in Chart1.Series)
{
// 柱形宽度
ser[ " PixelPointWidth " ] = " 40 " ;
// 像素点深度
ser[ " PixelPointDepth " ] = " 80 " ;
// 像素点间隙深度
ser[ " PixelPointGapDepth " ] = " 10 " ;
}

这些属性都是设置MSChart的外观样式的属性,大家可以尝试修改试试,

当然主要的是绑定数据了.所以在调用这些属性时先用上文介绍的几种绑定方式绑定数据.

有些属性可能在3D模式下失效或者在2D模式下失效,这是正常现象,

效果图:

折线图:

属性同上..有些属性会在折线图下失效,

效果图:

圆饼图:

代码

IList < ChartModel > list = GetData.GetChartDataListByPie();

// 数值显示百分比形式
Chart1.Series[ " Series1 " ].Label = " #PERCENT{P} " ;
Chart1.Series[ " Series1 " ].Points.DataBind(list, " home " , " num1 " , " LegendText=home,YValues=num1,ToolTip=num1 " );

Chart1.Series[ " Series1 " ].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Pie;

Chart1.Series[ " Series1 " ].ToolTip = " #LEGENDTEXT: #VAL{C} million " ;

Chart1.ChartAreas[ " ChartArea1 " ].Area3DStyle.Enable3D = true ;

这个比较简单吧..
主要是这里的 Chart1.Series["Series1"].Points.DataBind(list, "home", "num1", "LegendText=home,YValues=num1,ToolTip=num1");
LegendText整了我半天.这个是显示右侧说明的,开始老是显示不出来,而且还不统一.
Legend其实就是右侧显示的说明,但是做过的朋友会发现在柱形图还有折线图如果页面指定了一个<Lengend></Lengend>标签的话,会多显示一个,所以需要在执行绑定的时候
写上这么一段代码 Chart1.Series.Clear();
MSChart可不止可以制作这三种图形,我只是觉得这三种比较常用.想在圆饼图中合并几项成显示成其他,搞了半天没搞出来,郁闷,谁知道告诉下.
更多内容请访问: 小刚的博客

MSChart使用技巧总结相关推荐

  1. keyshot怎么批量渲染_提高Keyshot逼真渲染的小技巧

    Keyshot是一个特别神奇的应用软件,但是,就像Photoshop一样,如果你不知道怎么使用它,那么再优秀的工具在你手中也什么都是了.这里我就告诉你一些制作优秀效果图的技巧以及如何使用这个神奇软件. ...

  2. Linux shell 学习笔记(6)— vim 编辑器使用方法及技巧

    1. 检查 vim 软件包 1.1 CentOS 发行版 $ alias vi alias vi='vim' $ $ which vim /usr/bin/vim $ $ ls -l /usr/bin ...

  3. Python 笔试面试及常用技巧 (1)

    1. 交换两个数字 In [66]: x, y = 1, 2In [67]: x Out[67]: 1In [68]: y Out[68]: 2 赋值的右侧形成了一个新的元组,左侧立即解析(unpac ...

  4. Redis 使用技巧

    Redis 现在非常受欢迎,似乎已经成为内存数据存储行业的标准.本人结合平时使用Redis经验,也同时查找了一些网上别人的总结经验,总结以下几条Redis使用技巧. 1. 停止使用 KEYS 众所周知 ...

  5. 受用一生的高效 PyCharm 使用技巧(六)

    http://www.sohu.com/a/329854019_654419 大家好,今天我又来给大家更新 PyCharm 的使用技巧. 从第一篇开始,一直到本篇,一共更新了6篇文章,每篇 5 个小技 ...

  6. 受用一生的高效 PyCharm 使用技巧(四)

    https://blog.csdn.net/pdcfighting/article/details/93269028 大家好,距离最近一篇 PyCharm 使用技巧的文章已经过去一月有余,最近虽然也比 ...

  7. 受用一生的高效 PyCharm 使用技巧(二)pycharm 指定参数运行文件

    https://mp.weixin.qq.com/s/Ii0-qHUXayTPb-K-17hmQQ 在介绍技巧之前,有些话想声明一下,这个系列的一些小技巧,对于一些重试用户来说可能是小 case,如果 ...

  8. 受用一生的高效 PyCharm 使用技巧(一)

    声明:本文章转自 返回主页Python编程时光 PyCharm 是大多数 Python 开发者的首选 IDE,每天我们都在上面敲着熟悉的代码,写出一个又一个奇妙的功能. https://www.cnb ...

  9. PyCharm 使用技巧

    PyCharm 使用技巧 2018.12.15 00:26:36 字数 1034 阅读 290 JetBrains家的IDE很多技巧是通用的,说一些自己日常用得多但不一定仅限于PyCharm的技巧: ...

最新文章

  1. keepalived打造mysql主主高可用
  2. SQL update select语句
  3. pku 2954 Triangle pku 1265 Area Pick定理的应用 + 叉积求多边形面积
  4. CryptoAPI与openssl RSA非对称加密解密(PKCS1 PADDING)交互
  5. 综合学生信息管理系统(JSP+JDBC)
  6. The data replication requires the processing of single BDoc instances
  7. java image getscaledinstance_使用getImage()和getScaledInstance()调整java.awt.Image的异常大小...
  8. Java大数据-Week2-Day1 面向对象基础
  9. 浅谈linux性能调优之六:IO调度算法的选择
  10. ASP.NET Core--授权过滤器
  11. 全面的C#编码规范整理
  12. 小波分析工具包 matlab,matlab小波工具箱下载|
  13. Python|十五个超级炫酷的代码
  14. hashcat进行rar密码破解可gpu运算
  15. HTML网页设计结课作业 榆林子州 HTML5响应式旅游景区网站模板
  16. 不确定性,进化与经济理论
  17. Java Web-----轮播图的实现
  18. html5音效,HTML5之Audio(六)—— 3D音效
  19. linux系统 插上硬盘认不到,关于Linux系统增加SCSI硬盘不识别的问题及解决办法
  20. 论文常用 | FineBI v6.0 新图表 | 箱形图

热门文章

  1. box86 exagear
  2. C语言 浙大版《C语言程序设计(第3版)》题目集 练习8-8 移动字母 (10分)
  3. 朴素贝叶斯方法(Naive Bayes)
  4. 江苏省计算机学业水平测试模拟软件,基于江苏省普通高中物理学业水平测试的学生在线自主模拟测试系统研发...
  5. HANA内存数据库简介
  6. Linux-Ubuntu下载安装postman工具
  7. C++ Base64转图片图片转Base64
  8. 利用android studio实现手机信息界面
  9. MLlib spark 垃圾邮件分类
  10. DockerCon_2017_那些Docker的新技术你们怎么看?