图表控件MsChart教程Word格式文档下载.docx
《图表控件MsChart教程Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《图表控件MsChart教程Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。
ChartControl使用经验总结
2009-03-2813:
44
|ClicktoRate
近日开始学习和研究这个新奇的控件。
一.什么是图表
上面这张表中所示的就是一张图表的所有组成。
从中我们可以看出,图表的五大元素为:
附注(Annotations)、图表区(ChartAreas)、图例(Legends)、列(Series)、标题(Titles)。
二.如何把Chart控件添加到VS2008工具箱
这三个文件可以从微软网站下载到或是在我的附件中下载。
安装的顺序图中排列顺序,其中MSChart.exe就是图表控件的安装程序;
MSChartLP_chs.exe是语言包;
MsChart_VisualStudioAddon.exe是扩展安装。
都安装完成后,打开VS2008,在工具箱中任意处右击-"
选择项..."
,将下图中所示的两项打上勾,即可在工具箱中的Data栏中看到Chart控件。
我们可以把它移动到"
数据"
栏中,如下图所示:
三.创建一个最简单的图表
在设计视图中从工具箱中拖拽Chart控件至页面,如下图所示:
如果在这个时候预览网页的话,是什么也看不见的,是一张图表,因为它没有数据,所以我们要给它赋值并设置相关属性。
下同是整个Chart控件的页面代码,如何给它赋值大家可以研究一下这段代码。
<
asp:
ChartID="
Chart2"
runat="
server"
>
<
Annotations>
LineAnnotationName="
LineAnnotation1"
/asp:
LineAnnotation>
/Annotations>
Series>
SeriesName="
Series1"
points>
DataPointYValues="
40"
/>
34"
67"
31"
27"
87"
45"
32"
/points>
/Series>
ChartAreas>
ChartAreaName="
ChartArea1"
ChartArea>
/ChartAreas>
Chart>
上面这段代码是直接在aspx文件中书写,下面要介绍的是在.vb文件中添加数据:
PrivateSubPage_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
'
创建列
DimseriesAsNewSeries("
曲线"
)
series.ChartType=SeriesChartType.Spline
series.BorderWidth=3
series.ShadowOffset=2
给列赋值
series.Points.AddY(67)
series.Points.AddY(30)
series.Points.AddY(83)
series.Points.AddY(23)
series.Points.AddY(70)
series.Points.AddY(60)
series.Points.AddY(90)
series.Points.AddY(20)
将上述创建并赋过值的列添加到图表控件的Series集合中
Chart1.Series.Add(series)
EndSub'
Page_Load
四.图表类型(ChartStyle)
Chart控件提供了丰富的图表类型,如柱状、条状、由线、饼图、雷达图等等,并可以随时在2D和3D之间切换。
下面所示的是部分图表类型的截图:
(3D柱形图)(2D条形图)
(2D线图)(3D饼图)
图表类型的设置是是在Series集合中的,在代码中的写法如下:
Chart1.Series("
Series名"
).ChartType=......
有了这么多的选择,就为我们不同的需求提供了大大的方便。
五.Chart控件显示数据库中的数据
在讲绑定之前,先给大家看一张表,这张表介绍了在什么样的情况下用什么样的绑定方法,十分有用。
下面就来分别介绍这张表中介绍到的种种绑定方法。
在写示例之前我要说明一下我用到的两张表。
MyTest表:
SALESCOUNTS表:
1.使用DataBindTable方法
ProtectedSubPage_Load(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMe.Load
绑定一个简单的数据源.X轴表示文字型,Y轴表示数字型
UsingconectAsNewSqlConnection(ConfigurationManager.ConnectionStrings("
NTTrafficConnectionString"
).ConnectionString)
DimCommandAsSqlCommand=NewSqlCommand("
SELECT[name],[score]FROM[MyTest]"
conect)
conect.Open()
DimreaderAsSqlDataReader=Command.ExecuteReader(CommandBehavior.CloseConnection)
Chart1.DataBindTable(reader,"
name"
reader.Close()
conect.Close()
EndUsing
EndSub
结果:
2.使用DataBind方法
用databind方法
DimMyCommandAsSqlCommand=NewSqlCommand("
Chart1.DataSource=MyCommand
Chart1.Series("
).XValueMember="
).YValueMembers="
score"
).ChartType=SeriesChartType.Line
).IsValueShownAsLabel=True
Chart1.DataBind()
效果:
3.使用Points.DataBindX(Y)方法
SELECT[score]FROM[MyTest]"
Chart1.DataBindTable(reader,"
).Points.DataBindY(reader,"
使用Points.DataBindXY方法
).Points.DataBindXY(reader,"
reader,"
).ChartType=SeriesChartType.Pie
4.使用Points.DataBind方法
SELECT*FROM[MyTest]"
).Points.DataBind(reader,"
Name"
"
Tooltip=myhref,label=score"
Chart1.ChartAreas("
).Area3DStyle.Enable3D=True
5.使用DataBindCrossTable方法
Chart1.DataBindCrossTable(reader,"
isclass"
label=score"
DataBindCrossTable(DataSource,SeriesGroup,xField,yFields,otherFields)
下面一段为模仿原文写,不明白为何要用marker
DimmarkerAsMarkerStyle=MarkerStyle.Star4
ForEachSerAsSeriesInChart1.Series
Ser.ChartType=SeriesChartType.Line
Ser.ShadowOffset=2
Ser.BorderWidth=3
Ser.MarkerSize=12
Ser.MarkerStyle=marker
Ser.MarkerBorderColor=Drawing.Color.Pink
marker+=1
Next
6.DataBindSeriesByRows
SELECT*FROM[SALESCOUNTS]"
DimmyDataAdapterAsNewSqlDataAdapter()
myDataAdapter.SelectCommand=Command
DimmyDateSetAsNewDataSet()
myDataAdapter.Fill(myDateSet,"
Query"
DimrowAsDataRow
ForEachrowInmyDateSet.Tables("
).Rows
DimseriesNameAsString=row("
SalesRep"
).ToString()'
显示在右上角的legend为此处的吧?
Chart1.Series.Add(seriesName)
Chart1.Series(seriesName).ChartType=SeriesChartType.Line
Chart1.Series(seriesName).BorderWidth=2
Chart1.Series(seriesName).IsValueShownAsLabel=True
DimcolIndexAsInteger
ForcolIndex=1To(myDateSet.Tables("
).Columns.Count)-1
DimcolumnNameAsString=myDateSet.Tables("
).Columns(colIndex).ColumnName'
获得列名
DimYValAsInteger=CInt(row(columnName))'
获得列数据
Chart1.Series(seriesName).Points.AddXY(columnName,YVal)
NextcolIndex
Nextrow
Command.Connection.Close()
7.DataBindThenAlignAxisLabel
Dimyval1AsDouble()={2,6,5}
Dimxval1AsString()={"
Peter"
Andrew"
Julie"
}
Dimyval2AsDouble()={4,5,3}
Dimxval2AsString()={"
Dave"
Dimyval3AsDouble()={6,5}
Dimxval3AsString()={"
Mary"
).Points.DataBindXY(xval1,yval1)
Series2"
).Points.DataBindXY(xval2,yval2)
Series3"
).Points.DataBindXY(xval3,yval3)
ForEachserAsSeriesInChart1.Series
ser.Label="
#AXISLABEL"
AlignseriesusingtheirXaxislabels
IfAlignSeries.CheckedThen
Chart1.AlignDataPointsByAxisLabel()
EndIf
来自:
三:
其它属性
相对来说,我觉得比较有用的属性有三个,分别是:
Label、Tooltip以及Url链接。
Label即标签的含义,可以在图片的关键位置进行一些关键数字或文字的描述,如下图:
像上图:
X轴和Y轴的文字便是标签,以及图表曲线中的红点上的文字,也是标签,添加了标签,可以让人更容易的对内容进行理解。
Tooltip即提示的含义,用于在各个关键点,如:
标签、图形关键点、标题等当鼠标移动上去的时候,提示用户一些相关的详细或说明信息,例如上图,可以给曲线中的