MSChart实例

简介:

MSChart是VS中自带的图表控件,功能比较强大,效果也比较丰富。下面只提供一个例子,以供新接触的朋友参考。

先看下效果图:

Center

Center

Center

看完效果图上代码啦。

使用这个控件需要先在页面注册一下。

1
2
<%@ Register Assembly= "System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
     Namespace= "System.Web.UI.DataVisualization.Charting"  TagPrefix= "asp"  %>

如果你是在VS工具箱中直接拖动的,上述注册控件的代码是可以自动生成的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
< div >
     < asp:DropDownList  ID = "ddlSelectType"  runat = "server"  AutoPostBack = "true" >
         < asp:ListItem  Text = "柱状图"  Value = "Column"  />
         < asp:ListItem  Text = "饼图"  Value = "Pie"  />
         < asp:ListItem  Text = "折线图"  Value = "Line"  />
     </ asp:DropDownList >
     < div >
         < asp:Chart  ID = "Chart1"  runat = "server"  BorderlineDashStyle = "Solid"  BorderlineColor = "Gray"
             Width = "768px"  BackGradientStyle = "DiagonalLeft"  BackSecondaryColor = "AliceBlue"
             BackColor = "WhiteSmoke" >
             < Legends >
                 < asp:Legend  Name = "Lgd"  BackColor = "Transparent"  Docking = "Top"  />
             </ Legends >
             < Series >
                 < asp:Series  Name = "Series1"  IsValueShownAsLabel = "true"  CustomProperties = "DrawingStyle=Cylinder, MinPixelPointWidth=20, MaxPixelPointWidth=35, PointWidth=0.3"
                     IsXValueIndexed = "False"  ShadowOffset = "1"  Legend = "Lgd"  ChartArea = "ChartArea1"  />
             </ Series >
             < ChartAreas >
                 < asp:ChartArea  Name = "ChartArea1"  BackColor = "White"  BackSecondaryColor = "Azure"  BackGradientStyle = "DiagonalLeft"
                     ShadowOffset = "2" >
                     < AxisY >
                         < MajorGrid  LineColor = "LightSlateGray"  LineDashStyle = "Dash"  />
                     </ AxisY >
                     < AxisX >
                         < MajorGrid  Enabled = "False"  />
                         < LabelStyle  Font = "Microsoft Sans Serif, 8pt"  />
                     </ AxisX >
                 </ asp:ChartArea >
             </ ChartAreas >
         </ asp:Chart >
     </ div >
</ div >

上面在控件内部设置了很多属性,用于控制图表显示的效果。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
protected  void  Page_Load( object  sender, EventArgs e)
{
     if  (!IsPostBack)
     {
         ChartBind(SeriesChartType.Line);
     }
     ddlSelectType.SelectedIndexChanged +=  new  EventHandler(ddlSelectType_SelectedIndexChanged);
}
          
/// <summary>
/// 准备数据源
/// </summary>
/// <returns>数据源</returns>
public  DataTable PrepareData()
{
     DataTable dt =  new  DataTable();
     dt.Columns.Add( "subject" typeof ( string ));
     dt.Columns.Add( "score" typeof ( float ));
     dt.Rows.Add( "数学" , 80);
     dt.Rows.Add( "语文" , 89);
     dt.Rows.Add( "英语" , 97);
     dt.Rows.Add( "物理" , 78);
     dt.Rows.Add( "化学" , 76);
     return  dt;
}
          
/// <summary>
/// 图表绑定
/// </summary>
/// <param name="chartType">图表类型</param>
public  void  ChartBind(SeriesChartType chartType)
{
     DataTable dt = PrepareData();
     Chart1.Series[ "Series1" ].Points.DataBind(dt.DefaultView,  "subject" "score" "LegendText=subject,YValues=score,ToolTip=subject" );
     Chart1.Series[ "Series1" ].ChartType = chartType; //图表类型
     Chart1.DataBind();
}
          
/// <summary>
/// 下拉框选择
/// </summary>
protected  void  ddlSelectType_SelectedIndexChanged( object  sender, EventArgs e)
{
     SeriesChartType chartType;
     string  value =  this .ddlSelectType.SelectedValue;
     switch  (value)
     {
         case  "Column" : chartType = SeriesChartType.Column;  break ; //柱状图
         case  "Pie" : chartType = SeriesChartType.Pie;  break ; //饼图
         case  "Line" : chartType = SeriesChartType.Line;  break ; //折线图
         default : chartType = SeriesChartType.Column;  break ;
     }
     ChartBind(chartType);
}

值得一提的是,只要指定了图表类别,绑定的代码共用一套,即可显示不同的图表效果。



本文转自 guwei4037  51CTO博客,原文链接:http://blog.51cto.com/csharper/1345242


相关文章
|
JSON JavaScript 搜索推荐
Github 精选 #4 | 让 Github 帮你自动压缩图片!
Github 精选 #4 | 让 Github 帮你自动压缩图片!
Github 精选 #4 | 让 Github 帮你自动压缩图片!
|
数据可视化 数据挖掘 Linux
震撼发布!Python数据分析师必学,Matplotlib与Seaborn数据可视化实战全攻略!
在数据科学领域,数据可视化是连接数据与洞察的桥梁,能让复杂的关系变得直观。本文通过实战案例,介绍Python数据分析师必备的Matplotlib与Seaborn两大可视化工具。首先,通过Matplotlib绘制基本折线图;接着,使用Seaborn绘制统计分布图;最后,结合两者在同一图表中展示数据分布与趋势,帮助你提升数据可视化技能,更好地讲述数据故事。
293 1
|
机器学习/深度学习 调度 计算机视觉
CompVis
【9月更文挑战第23天】
257 3
|
数据可视化 Linux API
Tkinter与PyQt的对比
【8月更文挑战第3天】本文对比了Python中两大GUI工具包Tkinter与PyQt。Tkinter作为Python标准库的一部分,易于学习且轻量级,适合快速开发简单的跨平台GUI应用。PyQt功能强大且灵活,支持复杂应用的开发,更适合有经验的开发者。通过示例代码展示了如何使用这两种工具包创建基本的GUI应用及图像查看器,帮助读者理解它们的不同之处。选择哪个工具包取决于项目的具体需求、开发者的经验以及对功能和性能的要求。
|
XML Java 测试技术
Spring Boot中的依赖注入和控制反转
Spring Boot中的依赖注入和控制反转
|
11月前
|
JSON 监控 安全
深入理解 Python 的 eval() 函数与空全局字典 {}
`eval()` 函数在 Python 中能将字符串解析为代码并执行,但伴随安全风险,尤其在处理不受信任的输入时。传递空全局字典 {} 可限制其访问内置对象,但仍存隐患。建议通过限制函数和变量、使用沙箱环境、避免复杂表达式、验证输入等提高安全性。更推荐使用 `ast.literal_eval()`、自定义解析器或 JSON 解析等替代方案,以确保代码安全性和可靠性。
442 2
|
12月前
|
存储 关系型数据库 MySQL
MySQL存储引擎详述:InnoDB为何胜出?
MySQL 是最流行的开源关系型数据库之一,其存储引擎设计是其高效灵活的关键。InnoDB 作为默认存储引擎,支持事务、行级锁和外键约束,适用于高并发读写和数据完整性要求高的场景;而 MyISAM 不支持事务,适合读密集且对事务要求不高的应用。根据不同需求选择合适的存储引擎至关重要,官方推荐大多数场景使用 InnoDB。
460 7
|
移动开发 编解码 UED
除了 `<audio>` 和 `<video>` 标签,HTML5 还支持哪些多媒体格式?
【10月更文挑战第19天】HTML5对多种多媒体格式的支持,为网页开发者提供了丰富的选择,能够更好地满足不同类型多媒体内容在网页中的展示和交互需求,提升了网页的用户体验和多媒体应用的多样性。
|
机器学习/深度学习 存储 算法
数据结构与算法——BFS(广度优先搜索)
数据结构与算法——BFS(广度优先搜索)