自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET 3.5圖表控件親密接觸

譯文
開發(fā) 后端
本文講述的是使用MSChart(微軟圖表)控件創(chuàng)建和顯示一個圖表的關(guān)鍵點,最后一小節(jié)將文中涉及到的提示和技巧進(jìn)行了總結(jié),看過之后,會讓你的MSChart經(jīng)歷愉快的。

【51CTO快譯】圖表是一種直觀易懂的顯示信息的方式,為了在.Net應(yīng)用程序中支持圖表,微軟在.Net SP1和Visual Studio 2008中提供了一個插件以支持強(qiáng)壯的圖表,再也不用花錢購買昂貴的、有專利權(quán)的軟件了。為了能夠創(chuàng)建本文所說的圖表,你需要安裝Microsoft Chart Controls for Microsoft .NET Framework 3.5和Microsoft Chart Controls add-on for Microsoft Visual Studio 2008。如果你對圖表還不熟悉,那就仔細(xì)閱讀本文吧。

ChartAreas

ChartAreas屬性是ChartArea對象的集合,ChartArea負(fù)責(zé)顯示容器的屬性或圖表的背景,由于不止一個,這就意味著MSChart控件可以包含多個圖表。

 

 單個和多個ChartArea

在使用多個ChartAreas時理解下面幾點內(nèi)容非常重要:

在技術(shù)上可以控制ChartArea的位置,因此多個ChartArea可以疊加,但不推薦這么做,建議在MSChart控件內(nèi)的獨立區(qū)域內(nèi)繪制它們,為了合并或覆蓋數(shù)據(jù)點,推薦在一個ChartArea內(nèi)使用多個序列,后面將會有介紹。默認(rèn)情況下,控件會為你自動調(diào)整大小和位置。

單個ChartArea將會獨立調(diào)整以適應(yīng)數(shù)據(jù),正如上圖所顯示的,第二個ChartArea中的Y值更大,數(shù)據(jù)點也更少。

多個ChartArea允許你使用多個不相容的ChartTypes(序列對象屬性,控制圖表的顯示類型,如條形、柱狀和餅狀)顯示圖表,圖表任然顯示在相同的MSChart控件內(nèi)。

對于單個ChartArea,有許多獨立的屬性可以設(shè)置和調(diào)整,這樣你就可以自行調(diào)整圖表區(qū)域以滿足不同的需要,它的大部分屬性和面板控件的屬性都差不多,因此這里我們就不多說了,只說一下ChartArea唯一的屬性,下面是這些唯一屬性的清單:

3D樣式:使用ChartArea的Area3DStyle屬性和子屬性,我們可以創(chuàng)建漂亮的、十分搶眼的3D圖表,無論是在設(shè)計器中還是在代碼中都必需將Enable3D屬性設(shè)置為TRUE,其余的參數(shù)可以通過調(diào)整旋轉(zhuǎn)、視角、照明方式和其它3D元素,讓一個圖像看起來具有3D效果。

3D樣式 

坐標(biāo)軸控制和樣式:坐標(biāo)軸集合包括x軸和y軸,以及第二個x軸和y軸,這四個項目的屬性允許你設(shè)置樣式、設(shè)置標(biāo)簽、定義間隔、設(shè)置工具提示、設(shè)置縮放等,如果你的圖標(biāo)要求精確的間隔、標(biāo)簽或其它特殊的顯示需要,你可以使用這些屬性。例如,你可以顛倒坐標(biāo)軸的值,或控制如何在x軸上顯示標(biāo)簽。如果你使用圖表顯示實時信息,可以使用IntervalType屬性來配置基于日期和時間顯示數(shù)據(jù)點。

選擇光標(biāo):如果你對用戶使用鼠標(biāo)選擇數(shù)據(jù)點或點擊和拖拉范圍非常感興趣,這個時候就要用到CursorX和CursorY屬性了,你可以啟用選擇,并設(shè)置最初的光標(biāo)位置或范圍。

Series

和ChartAreas屬性一樣,Series屬性是一個集合。單個ChartAreas實例包括3個重要的屬性:ChartArea屬性、ChartType屬性和Points集合屬性。

ChartArea:識別使用哪個ChartArea。

ChartType:識別表示數(shù)據(jù)時使用的圖標(biāo)類型,基本的類型有條形、柱狀、餅狀和線狀,還有一些高級選項,如K線圖、曲線圖、追星圖等。

Points:它是DataPoint對象的集合,包括x值和y值,它們是繪在圖表上的序列的一部分,數(shù)據(jù)綁定時最常用的增加數(shù)據(jù)點的方法,本文后面會做介紹。

Series實例上的其他常用屬性和人們廣泛了解的還包括:

Color:這個屬性用于單獨設(shè)置每個數(shù)據(jù)點序列的顏色,默認(rèn)情況下,這個屬性是空白的,控件會自動改變顏色,以保證將多個序列區(qū)分開來。

IsValueShownAsLabel:將這個屬性的值設(shè)為TRUE后(默認(rèn)是FLASE),圖表將顯示每個數(shù)據(jù)點的Y值。

Y值數(shù)據(jù)標(biāo)簽 

在講多個序列實例合并到一個ChartArea中時,例如下面兩個獨立的圖表,每個圖表都包括6個數(shù)據(jù)點。

獨立的數(shù)據(jù)序列 

假設(shè)你想比較這兩個圖表中的數(shù)據(jù)點,你可以將這兩個MSChart控件放在一起,相互挨著,也可以在一個圖表中使用兩個ChartAreas,這兩種方式都沒問題,但都不能給你很好的視覺比較效果,這就是為什么MSChart要合并數(shù)據(jù)點,讓你可以肩并肩地對比數(shù)據(jù)。將第二個圖表中的數(shù)據(jù)作為第二個序列實例添加到第一個圖表中,一下子就從視覺上改善了對比的效果。

合并數(shù)據(jù)序列 

使用多個序列實例時,記住每個序列使用的ChartType非常重要,不是所有ChartType選項放在一起都是兼容的。

總的說來,圖表控件的層次如下:MSChart控件有零到多個ChartAreas,一個ChartAreas有零到多個序列(Series),一個序列有零到多個數(shù)據(jù)點(DataPoints)。

#p#

數(shù)據(jù)綁定

數(shù)據(jù)可以在設(shè)計時或運行時綁定,在設(shè)計時綁定要使用到數(shù)據(jù)源配置向?qū)В贛SChart控件數(shù)據(jù)源屬性下拉按鈕中可以找到它,如果你已經(jīng)配置過數(shù)據(jù)源,你可以在下拉列表中進(jìn)行選擇。

圖表函數(shù)

DataBind():綁定數(shù)據(jù)源的基礎(chǔ)函數(shù)。

DataBindTable():綁定圖表到特定的數(shù)據(jù)表,但不允許綁定多個Y值,每個序列不同的數(shù)據(jù)源或x值、y值有不同的數(shù)據(jù)源。

DataBindCrossTab():將圖表綁定到一個數(shù)據(jù)源,并允許基于一個數(shù)據(jù)列進(jìn)行分組,在具體指定的列上每個唯一的值將自動創(chuàng)建一個單獨的序列。

數(shù)據(jù)點函數(shù)

DataBind():綁定一個序列到單一的數(shù)據(jù)源,并允許其它屬性綁定到同一個數(shù)據(jù)源(如標(biāo)簽、工具提示、圖例文本等)。

DataBindXY():允許將x值和y值綁定到獨立的數(shù)據(jù)源,它也用于為每個序列綁定單獨的數(shù)據(jù)源。

DataBindY():僅綁定序列中數(shù)據(jù)點的Y值。

數(shù)據(jù)源配置好后,MSChart控件可以綁定所有的實現(xiàn)了IEnumerable接口的對象,包括但不限于DataReader、DataSet、Array和List。也允許綁定SqlCommand、OleDbCommand、SqlDataAdapters和OleDbDataAdapter對象。

圖例

圖例屬性也是一個集合(叫做圖例對象),為了快速理解使用圖例可以做什么,可以把它想象成一個簡單的表,假設(shè)你有一個表格,默認(rèn)有兩列,你可以從前面的例子看出,使用序列實例名的默認(rèn)設(shè)置和序列的顏色,圖例可以通過添加額外的單元列到CellColumn集合上進(jìn)行擴(kuò)展,還可以添加列標(biāo)題,便于更好地理解圖例。在下面的例子,標(biāo)題“Name”和“Color”已經(jīng)添加到默認(rèn)圖例實例上。

簡單的圖例 

每個序列的圖例文本由序列自身控制,在每個序列實例上使用LegendText屬性以改變圖表上圖例的文本,你也可以給圖例一個標(biāo)題。在下面的例子,圖例被標(biāo)題為“圖例”,除此之外,你還可以輸入文本,你也可以設(shè)置屬性來處理標(biāo)題的對齊、顏色和字體,你會發(fā)現(xiàn)大部分MSChart屬性這類操作和自定義,只要你愿意。

最后,圖表的圖例有兩種放置方法,默認(rèn)是在ChartArea外部,位于右側(cè),緊挨ChartArea。另一種是通過坐標(biāo)進(jìn)行精確控制,??吭贑hartArea內(nèi),通過設(shè)置ChartArea對象的DockedToChartArea屬性實現(xiàn)。

更復(fù)雜的圖例 

標(biāo)題

標(biāo)題和前面討論到的其它屬性類似,為每個標(biāo)題創(chuàng)建獨立的實例時,圖表控件會在標(biāo)題集合中保留這些標(biāo)題實例,理解標(biāo)題的最好方法是將其認(rèn)為是一個標(biāo)簽控件,這意味著標(biāo)題可以頂端居中、左端居中、頂端居左和底部居右。

在下面的例子中,圖表擁有一個字體大小,頂端居中的標(biāo)題,叫做“My First Chart”。

具有自定義標(biāo)題的圖表 

提示和技巧

3D透明性:可以在序列上使用一些透明屬性讓3D圖表看起來更漂亮,在設(shè)計時,可以將Alpha值添加到要使用的顏色的RGB代碼中,在屬性窗口中,選擇序列集,選擇一個序列,在該序列的屬性窗口上,在現(xiàn)有的3個RGB值前添加一個Alpha值,你可以使用下面的代碼完成同樣的任務(wù):

chart1.Series["Series1"].Color = Color.FromArgb(220, 123, 123, 123);

利用設(shè)計器:在大多數(shù)時候,在代碼運行時才配置圖表控件的屬性和配置選項是很愚蠢的,當(dāng)你的應(yīng)用程序以靜態(tài)的方式使用圖表時(如一直都是兩個序列的條形圖),在設(shè)計時,設(shè)計器允許你配置和查看圖表。另一方面,如果你傾向于動態(tài)使用圖表(如一會兒是餅圖,一會兒是線狀圖,用戶在運行時可以自行修改),這種情況需要代碼在運行時修改設(shè)計,不用為每種圖表類型都手動創(chuàng)建代碼,使用設(shè)計器創(chuàng)建后,從設(shè)計文件中去除多余的代碼,這樣可以節(jié)約你編碼和決定使用哪個屬性的時間。

邏輯名:這是一個通用的優(yōu)秀編程習(xí)慣,在創(chuàng)建ChartAreas、Series和Titles等時,請確定都給它們?nèi)×嗣?,并且是容易記住的,例如,chart1.Series["Series1"]…, chart1.Series["Series2"]…就比chart1.Series["salesrepearningquarter"]…, chart1.Series["salesrepcomdatabyquarter"]…更容易引入錯誤。

小結(jié)

微軟的圖表控件提供了強(qiáng)壯的、靈活的和可自定義的圖表控件,為顯示提供給用戶的信息提供了一種更簡單可接受的方法,本文講了圖表的高級屬性,現(xiàn)在你可以開始創(chuàng)建好看的圖表贏得客戶的歡心。

原文:Microsoft Charts Overview 作者:Matt Goebel,Rachel Baker

【編輯推薦】

  1. 新ASP.NET 3.5圖表控件簡介
  2. ASP.NET 2.0輕松搞定統(tǒng)計圖表
  3. 自己動手實現(xiàn)Asp.net的MVC框架
  4. ASP.NET MVC應(yīng)用程序的本地化、單元測試和AJAX應(yīng)用
  5. 在ASP.NET中使用PlaceHolder控件
責(zé)任編輯:yangsai 來源: 51CTO.com
相關(guān)推薦

2009-02-01 13:57:53

ASP.NET.NET圖表控件

2009-07-27 14:50:24

ChartAreas控ASP.NET 3.5

2009-05-15 08:59:32

Windows 7微軟操作系統(tǒng)

2010-05-25 13:17:28

MySQL數(shù)據(jù)庫

2018-08-16 11:30:12

JavaCPU緩存

2009-12-02 09:07:45

ASP.NET 4.0

2009-07-27 17:38:30

WCF服務(wù)ASP.NET 3.5

2009-08-17 09:24:25

ASP.NET控件

2009-07-27 17:25:53

ASP.NET驗證控件

2009-07-27 13:52:36

Panel控件ASP.NET

2009-07-27 16:19:59

ASP.NET報表控件

2009-08-03 15:08:00

SqlDataSour

2013-02-25 09:43:22

LambdasJava8

2015-11-03 11:39:18

清華大學(xué)OpenStackEasyStack

2017-08-08 12:50:51

Serverless云端數(shù)據(jù)庫

2020-05-06 07:18:59

數(shù)據(jù)中臺架構(gòu)

2009-08-04 10:43:59

ASP.NET控件開發(fā)

2009-08-19 13:44:00

ASP.NET Lis

2009-07-29 13:50:26

UpdatePanelASP.NET

2009-08-05 15:57:03

ASP.NET控件ID
點贊
收藏

51CTO技術(shù)棧公眾號