花了近一周时间专门研究.net 3.5平台提供的Chart控件的使用方法,感觉该控件的功能很强大,做出的图表效果也很美观,使用方法也并不复杂。如今先讲下Chart控件的部署及一些基本使用方法。

一、安装Chart控件所需的一些组件:

以上组件在MS站点上均有下载

安装完后打开VS2008,在工具箱中右键选项,加入关于MSCHART组件的两个选项,工具箱中即出现Chart组件。

PS:可下载MSChart.rar,Chart控件的学习手冊,内容很全面,涵盖全部关于Chart的用法

二、基本使用方法:

1.构建一个最简单的图表

%@ Page Language="C#" AutoEventWireup="true" CodeFile="1.aspx.cs" Inherits="ChartTest_1" %>

<html>
<head>
<title>WebForm1</title>
<meta content="Microsoft Visual Studio 7.0" name="GENERATOR"/>
<meta content="C#" name="CODE_LANGUAGE"/>
<meta content="JavaScript" name="vs_defaultClientScript"/>
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"/>
<link media="all" href="../../samples.css" mce_href="samples.css" type="text/css" rel="stylesheet" />
</head>
<body>
<p><asp:Chart ID="chart1" runat=server Height="296px" Width="595px"
ImageLocation="~/TempImages/ChartPic_#SEQ(300,3)" Palette=BrightPastel
ImageType=Png BackSecondaryColor=White BackGradientStyle=TopBottom
BackColor="#D3DFF0" BorderlineColor="26,59,105" >
<Legends>
<asp:Legend IsTextAutoFit=false Name="Default" BackColor="Transparent" Font="Trebuchet MS,8.25pt,style=Bold"></asp:Legend>
</Legends>
<BorderSkin SkinStyle=Emboss />
<Series>
<asp:Series Name="Column" BorderColor="180,26,59,105">
<Points>
<asp:DataPoint YValues="45" />
<asp:DataPoint YValues="34" />
<asp:DataPoint YValues="67" />
<asp:DataPoint YValues="31" />
<asp:DataPoint YValues="27" />
<asp:DataPoint YValues="87" />
<asp:DataPoint YValues="45" />
<asp:DataPoint YValues="32" />

</Points>
</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 />
<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>
</p>
</body>
</html>

.cs代码

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Web.UI.DataVisualization.Charting;

public partial class ChartTest_1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Series series = new Series("Spline");
series.ChartType = SeriesChartType.Spline;
series.BorderWidth = 3;
series.ShadowOffset = 2;

series.Points.AddY(45);
series.Points.AddY(34);
series.Points.AddY(67);
series.Points.AddY(31);
series.Points.AddY(27);
series.Points.AddY(87);
series.Points.AddY(45);
series.Points.AddY(32);

chart1.Series.Add(series);
}
}

2.直接在.cs代码中构建图表

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Web.UI.DataVisualization.Charting;

public partial class ChartTest_2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Chart Chart1 = new Chart();
Chart1.Width = 600;
Chart1.Height = 400;
Chart1.RenderType = RenderType.ImageTag;
//此属性决定MSChart生成的图形以何种方式送到client,有三种:
//ImageTag,图形在服务端保存为暂时文件,并将暂时文件的URL作为HTML中<IMG>标签的SRC属性值。而此暂时文件的URL规则及暂时文件怎样生成可由ImageLocation属性确定。
//BinaryStreaming,不在服务端生成图形文件,<IMG>标签的SRC属性值将指向还有一个负责生成图形的.aspx页面
//ImageMap,不显示实际的图形,仅创建图片热区(image map)。
//默认值是ImageTag,就是会在服务端生成暂时文件。
Chart1.ImageLocation = "..//..//TempImages//ChartPic_#SEQ(200,30)";
Chart1.Palette = ChartColorPalette.BrightPastel;
Title t = new Title("灰常好", Docking.Top, new System.Drawing.Font("Trebuchet MS", 14, System.Drawing.FontStyle.Bold), System.Drawing.Color.FromArgb(26, 59, 105));
Chart1.Titles.Add(t);
Chart1.ChartAreas.Add("Series 1");
Chart1.Series.Add("Series 1");
Chart1.Series.Add("Series 2");

Chart1.Series["Series 1"].Points.AddY(5);
Chart1.Series["Series 1"].Points.AddY(8);
Chart1.Series["Series 1"].Points.AddY(12);
Chart1.Series["Series 1"].Points.AddY(6);
Chart1.Series["Series 1"].Points.AddY(9);
Chart1.Series["Series 1"].Points.AddY(4);

Chart1.Series["Series 2"].Points.AddY(2);
Chart1.Series["Series 2"].Points.AddY(6);
Chart1.Series["Series 2"].Points.AddY(18);
Chart1.Series["Series 2"].Points.AddY(16);
Chart1.Series["Series 2"].Points.AddY(21);
Chart1.Series["Series 2"].Points.AddY(14);

Chart1.Series["Series 1"].ChartType = SeriesChartType.Bar;
Chart1.Series["Series 2"].ChartType = SeriesChartType.Bar;
//图表横向排列

Chart1.Series["Series 1"]["PointWidth"] = "0.6";
Chart1.Series["Series 2"]["PointWidth"] = "0.6";
//图表条柱粗细

Chart1.Series["Series 1"].IsValueShownAsLabel = true;
Chart1.Series["Series 2"].IsValueShownAsLabel = true;
//显示条柱代表数字

Chart1.Series["Series 1"]["BarLabelStyle"] = "Center";
Chart1.Series["Series 2"]["BarLabelStyle"] = "Center";
//数字显示在条柱中间

Chart1.ChartAreas["Series 1"].Area3DStyle.Enable3D = true;
//显示3D效果

Chart1.Series["Series 1"]["DrawingStyle"] = "Cylinder";
Chart1.Series["Series 2"]["DrawingStyle"] = "Cylinder";
//更改条柱形状

Chart1.ChartAreas["Series 1"].Area3DStyle.IsRightAngleAxes = true;
//更改图表视角

Chart1.ChartAreas["Series 1"].Area3DStyle.IsClustered = true;
//更改条柱长度

Chart1.ChartAreas["Series 1"].AxisX.LabelStyle.IsEndLabelVisible = false;
//去掉Y轴多余数字

Chart1.ChartAreas["Series 1"].Area3DStyle.Inclination = 80;
//控制条柱粗细

Chart1.BorderSkin.SkinStyle = BorderSkinStyle.Emboss;
Chart1.BorderlineColor = System.Drawing.Color.FromArgb(26, 59, 105);
Chart1.BorderlineDashStyle = ChartDashStyle.Solid;
Chart1.BorderlineWidth = 2;
Chart1.Legends.Add("Legend1");
Chart1.Page = this;
HtmlTextWriter writer = new HtmlTextWriter(Page.Response.Output);
Chart1.RenderControl(writer);

}
}

Chart控件的多种使用方法的更多相关文章

  1. Chart控件使用初步

    学习了Chart控件的初步使用方法,生成柱形图和饼图.    <asp:Chart ID="Chart1" runat="server" Width=&q ...

  2. winform Chart控件 获取鼠标处坐标值方法

    Chart控件本身功能强大,应用广泛,因此其属性.方法也很多.此处介绍在很多应用中需要查看鼠标位置处坐标值的一些方法 1,调用Chart事件  GetToolTip 利用ToolTipEventArg ...

  3. 常量,字段,构造方法 调试 ms 源代码 一个C#二维码图片识别的Demo 近期ASP.NET问题汇总及对应的解决办法 c# chart控件柱状图,改变柱子宽度 使用C#创建Windows服务 C#服务端判断客户端socket是否已断开的方法 线程 线程池 Task .NET 单元测试的利剑——模拟框架Moq

    常量,字段,构造方法   常量 1.什么是常量 ​ 常量是值从不变化的符号,在编译之前值就必须确定.编译后,常量值会保存到程序集元数据中.所以,常量必须是编译器识别的基元类型的常量,如:Boolean ...

  4. 这可能是目前最轻量级、最支持MVVM、可定制性最高的开源Chart控件!

    由于项目中经常用到Series Chart,而目前市面又实在找不到既支持MVVM,又轻量级的开源Chart控件,于是干脆就花了两周时间随手写了一个.昨天感觉还比较满意,就发布到了Github上:htt ...

  5. C# Chart控件,chart、Series、ChartArea曲线图绘制的重要属性

    http://blog.sina.com.cn/s/blog_621e24e20101cp64.html 为避免耽误不喜欢这种曲线图效果的亲们的时间,先看一下小DEMO效果图: 先简单说一下,从图中可 ...

  6. chart控件怎么使x轴标签全部显示出来

    在vs2012中使用chart控件事,x轴的标签过多,致使默认只能显示其中的一部分,如图 当然,我们可以通过设置,使得x轴标签全部显示. 首先,通过chart控件属性,找到   “ChartAreas ...

  7. 用Chart控件绘制动态图表

    进行程序设计时,选用一个合适的ActiveX控件,有时可大大减少编程工作量.ActiveX 控件(又称OCX)基于COM技术,作为独立的软件模块,它可以在任何程序设计语言中插入使用.本文仅以VC++为 ...

  8. 使用WinForm Chart控件 制作饼装,柱状,折线图

    http://blog.csdn.net/dream2050csdn/article/details/53510340 chart控件的属性很多,主要用到Chart控件图表区域的属性有五个属性 1.A ...

  9. C# Chart控件教程

    一.什么是Micosoft.Chart.Controls Micosoft.Chart.Controls是微软自带的一个图形可视化的组件,可以在Web程序和窗体程序中(Windowsform)中使用. ...

随机推荐

  1. 【HDOJ】4029 Distinct Sub-matrix

    思路是枚举矩阵列数,然后将字符矩阵转换成字符串,通过字符数组求不同子串数目.最后,减去不成立的情况.使用特殊字符分割可能的组合. /* 4029 */ #include <iostream> ...

  2. 1837. Isenbaev's Number(floyd)

    1837 被数据结构部分打击的不行了 换地 刷点简单的 图论第一题 floyd水过 #include <iostream> #include<cstdio> #include& ...

  3. 1671. Anansi's Cobweb(并查集)

    1671 并查集 对于询问删除边之后的连通块 可以倒着加边 最后再倒序输出 #include <iostream> #include<cstdio> #include<c ...

  4. poj 3321 Apple Tree(一维树状数组)

    题目:http://poj.org/problem?id=3321 题意: 苹果树上n个分叉,Q是询问,C是改变状态.... 开始的处理比较难,参考了一下大神的思路,构图成邻接表 并 用DFS编号 白 ...

  5. poj 3278 Catch That Cow (bfs)

    题目:http://poj.org/problem?id=3278 题意: 给定两个整数n和k 通过 n+1或n-1 或n*2 这3种操作,使得n==k 输出最少的操作次数 #include<s ...

  6. function 的声明

    <?php function test() { echo "abc"; } test(); ?> 结论: 一 编译 a.对 函数声明进行词法分析和语法分析:在语法分析中 ...

  7. (3)java棧

    java棧和函数调用的关系图 [名词解释]--->java棧是一块线程的私有空间--->java的棧是先进后出的数据结构.函数返回,则该函数的棧帧被弹出.--->一个函数对应一个棧帧 ...

  8. 无法找到.exe的调试信息

    原文:无法找到.exe的调试信息 前天重装了电脑,并配置了Visual Studio2005的VC正则库,boost/regex,运行速度马上快了三倍吧,到底是怎么快的,我还真说不清楚,因为电脑这玩意 ...

  9. 单实例运行tz

    (引用了 Microsoft.VisualBasic.ApplicationServices)SingleInstanceApplicationWrapper.cs    using System.W ...

  10. Serv-U搭建FTP服务器

    1.打开软件,勾选start automatically 2.点击domain,新建domain 3.依次输入IP.端口号.域名.域名类型 完成后的样子 4.右键单击Users,新建用户.依次输入用户 ...