MSChart图表控件的一些使用

本文涉及的产品
可视分析地图(DataV-Atlas),3 个项目,100M 存储空间
数据可视化DataV,5个大屏 1个月
简介:

最近使用MSChart做了几张图表,微软提供的例子中对这个图表控件的使用已经说的比较详细了,我这里记录一些需要注意的。

1. Chart图表的元素

要使用该图表首先要了解该图表的元素组成,就是下面这张图了,
clip_image002

图表主要包含:

Annotations (图形注解集合)
ChartAreas(图表区域集合)
Legends(图例集合)
Series图表序列集合即图表数据对象集合)
Title(图标的标题集合)

其他大家可以参考Samples中的Char Features一节。

2. 如何在ASP.NET MVC中使用Chart控件

2.1.需要在"<system.web><pages><controls>"中添加如下:

<add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization, 
Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
"/>

2.2.在"<httpHandlers>"中添加如下部分:

<add path="ChartImg.axd" verb="GET,HEAD" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, 
System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
" validate="false"/>

2.3. 有了上面的配置就可以测试了:

2.3.1.View中添加:

<asp:chart id="Chart1" runat="server" Height="296px" Width="412px" Palette="BrightPastel" imagetype="Png" 
BorderDashStyle="Solid" BackSecondaryColor="White" BackGradientStyle="TopBottom" BorderWidth="2" backcolor="#D3DFF0" 
BorderColor="26, 59, 105"> <Titles> <asp:Title Text="With datasource in code behind" /> </Titles> <legends> <asp:Legend IsTextAutoFit="False" Name="Default" BackColor="Transparent" Font="Trebuchet MS, 8.25pt, style=Bold">
</
asp:Legend></legends> <borderskin skinstyle="Emboss"></borderskin> <series> <asp:Series Name="Column" BorderColor="180, 26, 59, 105"> </asp:Series> </series> <chartareas> <asp:ChartArea Name="ChartArea1" BorderColor="64, 64, 64, 64" BorderDashStyle="Solid" BackSecondaryColor="White"
BackColor="64, 165, 191, 228" ShadowColor="Transparent" BackGradientStyle="TopBottom"> <area3dstyle Rotation="10" perspective="10" Inclination="15" IsRightAngleAxes="False" wallwidth="0"
IsClustered="False">
</
area3dstyle> <axisy linecolor="64, 64, 64, 64"> <labelstyle font="Trebuchet MS, 8.25pt, style=Bold" /> <majorgrid linecolor="64, 64, 64, 64" /> </axisy> <axisx linecolor="64, 64, 64, 64"> <labelstyle font="Trebuchet MS, 8.25pt, style=Bold" /> <majorgrid linecolor="64, 64, 64, 64" /> </axisx> </asp:ChartArea> </chartareas> </asp:chart>

2.3.2.index.aspx.cs中添加

protected void Page_Load(object sender, System.EventArgs e)
{
    foreach (int value in (List<int>)this.ViewData["Chart"])
    {
    this.Chart1.Series["Column"].Points.Add(value);
    }
}

2.3.3.Controller中:

public ActionResult Index()
{
    ViewData["Title"] = "Home Page";
    ViewData["Message"] = "Welcome to ASP.NET MVC!";
    List<int> chartList = new List<int>();
    chartList.Add(1);
    chartList.Add(2);
    chartList.Add(6);
    chartList.Add(5);
    chartList.Add(4);
    ViewData["Chart"] = chartList;
    return View();
}

2.3.4.添加System.Web.ui.DataVisualization引用

3. Tooltip的使用

ToolTip用于在各个关键点,如:标签、图形关键点、标题等当鼠标移动上去的时候,提示用户一些相关的详细或说明信息。我们可以通过如下代码来设置:

Chart1.Series["Series1"].ToolTip = "#VALY";
这里的主要目的是说下,系统已经提供了很多Keyword供我们使用,如下图:

clip_image002[6]

4. "Error executing child request for ChartImg.axd"的处理

<add name="ChartImageHandler" preCondition="integratedMode" verb="POST,GET,HEAD" path="ChartImg.axd"

<add path="ChartImg.axd"verb="POST,GET,HEAD"type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler,

这两个地方都加上POST就好了

5.图表的呈现

Chartk控件的ImageStorageMode属性是决定如片的存储方式的。

5.1.当Chart.ImageStorageMode=UseHttpHandler时

使用的是web.config中的配置。即指定由HTTP处理程序来存储图形文件,web.config的配置如下:

<add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;deleteAfterServicing=false; 
webDevServerUseConfigSettings=false
" />

5.1.1.其中c:\TempImageFiles\就是HTTP处理程序来存储图形文件的目录。

5.1.2.deleteAfterServicing,在图片被浏览器成功下功下载后,确定服务器上图片是否删除,默认值为false。如果不指定deleteAfterServicing,图片是不
会被存储为文件的,应当只是暂存在内存中。

5.1.3.webDevServerUseConfigSettings,当在VS开发服务器中,即运行在完全信任级别(full trust level)环境时,决定生成的图片是否被保存在内存中。

5.1.4storage存储3种方式:storage=file,storage=session,storage=memory.

5.2. 当Chart.ImageStorageMode= UseImageLocation时

图表会存储在我们指定的文件夹中,我们也可以指定图片生成的命名规则。

5.2.1.其中Chart.ImageType表示生成图形文件的格式,可以是BMG、JPEG、PNG、EMF。

5.2.2. Chart.RenderType

此属性决定MSChart生成的图形以何种方式送到客户端,有三种:

  • ImageTag,图形在服务端保存为临时文件,并将临时文件的URL作为HTML中<IMG>标签的SRC属性值。而此临时文件的URL规则及临时文件如何生成可由ImageLocation属性确定。
  • BinaryStreaming,不在服务端生成图形文件,<IMG>标签的SRC属性值将指向另一个负责生成图形的.aspx页面。
  • ImageMap,不显示实际的图形,仅创建图片热区(image map)。

默认值是ImageTag,就是会在服务端生成临时文件。

5.2.3.只要在服务端生成图形文件,无论存储在哪个目录下,ASP.NET帐户都需要拥有该目录的写入权限。

下面是我的一张图表:

mschart


本文转自生鱼片博客园博客,原文链接:http://www.cnblogs.com/carysun/archive/2009/03/15/MSChart.html,如需转载请自行联系原作者

相关实践学习
DataV Board用户界面概览
本实验带领用户熟悉DataV Board这款可视化产品的用户界面
阿里云实时数仓实战 - 项目介绍及架构设计
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3&nbsp;)前置知识要求 &nbsp; 课程大纲 第一章&nbsp;了解数据仓库概念 初步了解数据仓库是干什么的 第二章&nbsp;按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章&nbsp;数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章&nbsp;采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章&nbsp;用户行为数据仓库 严格按照企业的标准开发 第六章&nbsp;搭建业务数仓理论基础和对表的分类同步 第七章&nbsp;业务数仓的搭建&nbsp; 业务行为数仓效果图&nbsp;&nbsp;
相关文章
图表
4.5 图表 4.5.1 图表简介 1、图表 图表就是工作表单元格中数据的图形化表示,以直观形象的形式显示数据及数据之间的关系。 图表是基于工作表中的数据建立的,为工作表中的数据建立了图表后,图表和建立图表的数据就建立了一种动态链接关系: 1删除数据清单中的源数据时,图表中相应数据系列会自动删除。 2但删除图表中数据系列时,数据清单中源数据不变 2、图表的分类 按照图表的存放位置分为以下两种类型: 1嵌入式图表 (Alt+F1,默认),它和创建图表的数据源放置在同一张工作表中,打印时同时打印; 2独立图表 (F11),它是一个独立的图表工作表,打印时也将与数据表分开打印。 注意
|
3月前
|
存储 搜索推荐 C#
WPF/C#:让绘制的图形可以被选中并将信息显示在ListBox中
WPF/C#:让绘制的图形可以被选中并将信息显示在ListBox中
42 0
Qt实现在表格中添加气泡显示功能
Qt实现在表格中添加气泡显示功能
214 0
|
移动开发 C# HTML5
WPF实现图表绘制
WPF实现图表绘制
WPF实现图表绘制
|
定位技术 开发者
地图控件|学习笔记
快速学习地图控件
地图控件|学习笔记
|
前端开发 C#
WPF 自定义的图表(适用大量数据绘制)下
原文:WPF 自定义的图表(适用大量数据绘制)下 上一篇文章中讲了WPF中自定义绘制大量数据的图标,思路是先将其绘制在内存,然后一次性加载到界面,在后续的调试过程中,发现当数据量到达10W时,移动鼠标显示数据有明显的延迟。
1437 0
|
前端开发 C# 开发工具
WPF 自定义柱状图 BarChart
原文:WPF 自定义柱状图 BarChart WPF 自定义柱状图  当前的Telerik控件、DevExpress控件在图表控件方面做得不错,但是有时项目中需要特定的样式,不是只通过修改图表的模板和样式就能实现的。
1134 0
WinForm 将被遮挡的控件显示到最前面
WinForm 将被遮挡的控件显示到最前面
727 0
|
程序员 开发工具 C语言
Qt编写自定义控件45-柱状标尺控件
一、前言 这个控件写了很久了,是最早期的一批控件中的一个,和温度计控件类似,都是垂直的进度条,可以设置不同的背景颜色,左侧的刻度也可以自由设定,还提供了动画效果,其实就是开启定时器慢慢的进度到设定的目标值,如果设定的值比当前值大,则递增,反之递减。
1135 0
|
Java Linux PHP
WPF 自定义BarChartControl(可左右滑动的柱状图)
原文:WPF 自定义BarChartControl(可左右滑动的柱状图) 自定义可左右滑动、拖拽滑动的平面柱状图   在做这种样式控件之前,可先浏览我之前预研的控件: A、自定义左右滑动ScrollViewer(可拖动滑动) B、自定义Bar柱状图  OK,现在说下控件具体设计过程: 1)采用Grid布局,这样可以将Y轴的标题设置平均高度,X轴的柱子也可以平均。
951 0