MSChart使用做折线图饼图

摘要:
首先,您需要下载MSChart下载地址。Microsoft有一个非常好的示例代码,可以帮助您学习如何使用MSChart下载地址。当然,我不需要说。您还知道需要使用NETFramework 3.5和VS2008sp1。至于VS2010,您似乎还没有找到MSChart。我希望一些认识的朋友能给你一些帮助安装MSChart后,MSChart控件将出现在vs2008报告列中。将其拖到页面上,无需任何说明。以下代码将自动生成:generation
首先当然需要下载MSChart 下载地址 而且微软官方有个很不错的实例代码可以帮助学习使用MSChart 下载地址,当然不用我说.大家也知道的.需要NET Framework 3.5以及配合VS2008 sp1来使用了,至于vs2010好像还没有发现MSChart ,希望有知道的朋友给点帮助.

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

  

MSChart使用做折线图饼图第1张MSChart使用做折线图饼图第2张代码
<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");

第四种,折线图绑定方式

MSChart使用做折线图饼图第3张MSChart使用做折线图饼图第4张代码
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

MSChart使用做折线图饼图第5张MSChart使用做折线图饼图第6张代码
//是否启用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模式下失效,这是正常现象,

效果图:

MSChart使用做折线图饼图第7张

折线图:

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

效果图:

MSChart使用做折线图饼图第8张

圆饼图:

MSChart使用做折线图饼图第9张MSChart使用做折线图饼图第10张代码
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;

MSChart使用做折线图饼图第11张

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

免责声明:文章转载自《MSChart使用做折线图饼图》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇无法登录oracle数据库--由于资源不足引起程序员快速阅读,绝对不是神话下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

c#之Redis实践list,hashtable

写在前面 最近公司搞了一个活动,用到了redis的队列,就研究了下redis的相关内容。也顺手做了个demo。 C#之使用Redis 可以通过Nuget安装Reidis的相关程序集。安装之后发现会引入以下几个dll 一些list,队列和hashtable的操作。 using System; using System.Collections.Generi...

Java中集合总结

Java数组的长度是固定的,为了使程序能够方便地存储和操作数目不固定的一组数据,JDK类库提供了Java集合,这些集合类都位于java.util包中,但是与数组不同的是,集合中不能存放基本类型数据,而只能存放对象的引用。 Java集合主要分为以下三种类型: Set(集):集合中的对象不按特定方式排序,且没有重复对象。它的有些实现类能对集合中的对象按照特地方...

【巷子】---json-server---基本使用

一、前后端并行开发的痛点 前端需要等待后端开发完接口以后 再根据接口来完成前端的业务逻辑 二、解决方法 在本地模拟后端接口用来测试前端效果 这种做法称之为构建前端Mock 三、json-server的基本使用 (1)、全局安装 cnpm install json-server -g (2)、准备json文件 (data.json) json-serv...

【转】用Python实现各种排序算法

以下代码均为python3版本的代码 # 冒泡排序 # 比较相邻的元素大小,将小的前移,大的后移,就像水中的气泡一样,最小的元素经过几次移动,会最终浮到水面上。 def bubbleSort(list): if list != None: if len(list) ==1: pass...

R语言:ggplot2精细化绘图——以实用商业化图表绘图为例(转)

本文旨在介绍R语言中ggplot2包的一些精细化操作,主要适用于对R画图有一定了解,需要更精细化作图的人,尤其是那些刚从excel转ggplot2的各位,有比较频繁的作图需求的人。不讨论那些样式非常酷炫的图表,以实用的商业化图表为主。包括以下结构: 1、画图前的准备:自定义ggplot2格式刷 2、画图前的准备:数据塑形利器dplyr / tidyr介绍 ...

java MD5比较文件内容

最近用到,记下来…… 功能: 对指定目录下的所有TXT文件,通过MD5比较内容,删除掉重复的文件。文件的扩展可以修改成.docx、.doc、.jpg、.png,或者其它类型,根据需求灵活修改。 1 public classCompareFile { 2 3 public static voidrecursionDel(String direct...