一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

TChart的用法

 quasiceo 2013-11-12
TChart是一個功能強(qiáng)大的繪制各種數(shù)據(jù)圖表的控件,使用它可以很方便的繪制出各種數(shù)據(jù)圖表。下面就來詳細(xì)介紹它的使用。

  常用屬性:

 AxisVisible:Bool型用于顯示或隱藏圖表上的四個坐標(biāo)軸以及顯示區(qū)域的曲線框

 BufferDisplay:Bool型默認(rèn)為Ture.可以提高圖像的顯示速度消除閃爍

 MaxPointPerpage:默認(rèn)為0,用來設(shè)置每頁可以顯示的點的數(shù)量,設(shè)置了該屬性之后,除最后一頁外,每頁都是以固定的點數(shù)顯示。(頁:表示的是TChart的大?。?/p>

 SeriesList:該屬性為一指針數(shù)組,指向的是TChart中的Series。

 獲得TChart中的Serries數(shù)組,也有三種方法
        1.MySeries := Chart1.SeriesList [ 0 ]
        2.MySeries := Chart1.Series [ 0 ]
        3.MySeries := Chart1 [ 0 ]

 SerriesCount屬性獲得SeriesList中Series的個數(shù)
 AllowZoom : Boolean
是否允許鼠標(biāo)拖動來縮放圖表,通過拖拽鼠標(biāo)畫出矩形可以實現(xiàn)區(qū)域放大
AnimatedZoom : Boolean
拖動是否顯示縮放過程
ChartHeight : LongInt
以像素為單位,運行為只讀,顯示圖表頂軸與底軸的高度,不包含頁邊距,Height包含頁邊距,
DepthAxis,LeftAxis,RightAxis,TopAxis,BottomAxis
Tchart共分為五個坐標(biāo)軸,
LeftAxis,RightAxis,TopAxis,BottomAxis和DepthAxis
默認(rèn)情況下只顯示LeftAxis和BottomAxis坐標(biāo)軸可以通過Series屬性的子屬性HorizAxis與VertAxis進(jìn)行設(shè)置
如:
chart1.Series[0].HorizAxis := aBothHorizAxis;
chart1.Series[0].VertAxis := aBothVertAxis;
chart1.BottomAxis.Title.Caption := 'nsgtao';
chart1.BottomAxis.Title.Font.Color := clRed;
Foot : TChartTitle
在圖表底部定義的文本和格式,在圖表底部顯示一些說明文字
Chart1.Foot.Text.Add('Nsgtao Foot');

Gradient : TChartGradient
用于設(shè)置圖表背景顏色:是否顯示背景色,背景色漸變的起始顏色和終止顏色,漸變方向等
方法,事件,過程:

ZoomRect或者ZoomPercent方法實現(xiàn)圖像縮放

 

Series類型

Series類型是TChart繪圖的核心,在我看來TChart控件只是一個容器,它存放的Series數(shù)組。根據(jù)不同類型的Series就可以畫出不同類型的圖標(biāo)。從字面意思理解Series是一個序列,是一個數(shù)據(jù)點的序列,一幅圖可以由很多個這樣的數(shù)據(jù)點組成,在TChart繪制圖表實際上就是向TChart中添加數(shù)據(jù)點,TChart根據(jù)添加的點的不同類型畫出不同的圖表。Series就類似一個泛型的TList,由于Delphi沒有公布源碼,這只是我的猜測。

 Line ( TLineSeries)  用折線將序列各點連接起來的形式繪制圖表
 FastLine (TFastLineSeries) 相對Line來說,它損耗了某些屬性從而來實現(xiàn)快速繪制
 Bar (TBarSeries) 繪制垂直的直方圖,每個Series代表一個直方條
 Horizontal bar (THorizBarSeries) 和Bar類似只不過是水平方向的直方圖
 Area (TAreaSeries) 與Line相同,只不過還要將曲線與X軸的區(qū)域進(jìn)行填充
 Point (TPointSeries) 用點的形式顯示一條數(shù)據(jù),就好像將Line中的線去掉
 Pie (TPieSeries)  圓餅圖
 Arrow (TArrowSeries)
 Bubble (TBubbleSeries)
 Gantt (TGanttSeries)
 Sharp (TChartShape)

TSeries的方法:

Add:用于向Series添加一個新點,可以不用管該點的橫坐標(biāo),如果不添加其他可選參數(shù)的話,默認(rèn)的橫坐標(biāo)表示的是該段區(qū)域的數(shù)據(jù)點的個數(shù)

AddXY:添加點,參數(shù)為XY坐標(biāo)

AddNull:添加值為空的點

 

1.1      [概述]
   TChart是delphi里面一個標(biāo)準(zhǔn)的圖形顯示控件。它可以靜態(tài)設(shè)計(at design time)也可以動態(tài)生成。

1.2      [繼承關(guān)系]
TObject
TPersistent
TComponent
TControl
TCustomControl
TWedgetControl
TChart
TCustomPanel

1.3      [tips]
1.3.1            Pro Version支持Bezier , Contour , Radar 和 point3D 曲線
1.3.2            支持jpeg文件的導(dǎo)出
1.3.3            Chart中的Series 可以連接到Table , Query , RemoteDataset(其他數(shù)據(jù)集)
1.3.4            TChart里的series的active屬性可以實現(xiàn)對已繪制圖形的顯示或者隱藏
1.3.5            在TChart中, tchartSeries是所有具體series的父類,沒有畫出什么來的,用一個具體的series類來創(chuàng)建就可以了,比如用TLineSeries、 TPieSeries、 TPointSeries、 TPointSeries等等都行
1.3.6            TTeeFunction Component可以實現(xiàn)在同一個TChart里面,一個Serries對另一個Serries的統(tǒng)計

1.4      [問題極其使用技巧]

    1.4.1            TChart中如何實現(xiàn)只有Y軸的放大與縮小功能?
設(shè)置BottomAxis或者LeftAxis的Automatic:=false并同時設(shè)置Minimum,Maximum屬性
    1.4.2            如何固定TChart中的坐標(biāo),不使TChart中的坐標(biāo)跟隨Series的變化而變化?
//設(shè)置底座標(biāo)
with myChart.BottomAxis do
begin
    Automatic:=false;
    Minimum:=0;
    LabelStyle := talText;
end;
//設(shè)置左坐標(biāo)
with myChart.LeftAxis do
begin
    Automatic:=false;
    Minimum:=0;
    Title.Angle:=270;
    Title.Font:=Self.Font;
    Title.Font.Charset:=ANSI_CHARSET;
    Title.Font.Name:='@宋體';
    Grid.Visible := False;
end;
//設(shè)置右坐標(biāo)
with myChart.RightAxis do
begin
    Automatic:=false;
    Title.Font:=Self.Font;
    Title.Font.Charset:=ANSI_CHARSET;
    Title.Font.Name:='@宋體';
    Title.Caption:='累計百分比(%)';
    Maximum:=100;
    Minimum:=0;
end;
    1.4.3            如何刪除一個圖形中的一個點?
使用Series的delete 方法
    1.4.4            如何修改一個點的X或者Y 值?
LineSeries1.YValue[3] := 27.1 ;
{In Bubble Series}
BubbleSeries1.RadiusValues.Value[ 8 ] := 8.1 ;
{In Pie Series}
PieSeries1.PieValues.Value[ 3 ] := 111 ;
    1.4.5            如果橫坐標(biāo)是時間(日期),如何進(jìn)行設(shè)置?
{First, you need to set the DateTime property to True in the desired X and/or Y values list.}
LineSeries1.XValues.DateTime := True ;
{Second, use the same above described methods, but give the values as Date, Time or DateTime values}
LineSeries1.AddXY( EncodeDate( 1996 , 1 , 23 ) , 25.4 , 'Barcelona' , clGreen );
    1.4.6            如何在chart中畫出的曲線某個點上標(biāo)記出該點的值?
Series.Marks.Visible:=true;
Series.Marks.Style:=smsValue;
    1.4.7            如何設(shè)置橫軸或者縱軸的增長率?
Chart.BottomAxis.Increment := DataTimeStep[ dtOneHour ] ;
Chart.RightAxis.Increment := 1000;
    1.4.8            如何對圖象進(jìn)行縮放?
TChart的ZoomRect或者ZoomPercent方法(Pie圖可能不支持縮放)
1.5      [TChart可以繪制的圖形]
    1.5.1            Line ( TLineSeries)
    1.5.2            FastLine (TFastLineSeries) 相對Line來說,它損耗了某些屬性從而來實現(xiàn)快速繪制
    1.5.3            Bar (TBarSeries)
    1.5.4            Horizontal bar (THorizBarSeries)
    1.5.5            Area (TAreaSeries)
    1.5.6            Point (TPointSeries)
    1.5.7            Pie (TPieSeries)
    1.5.8            Arrow (TArrowSeries)
    1.5.9            Bubble (TBubbleSeries)
    1.5.10         Gantt (TGanttSeries)
    1.5.11         Sharp (TChartShape)

1.6      [TChart的實時繪制]
實時繪制對機(jī)器性能要求比較高,因此我們在編程的時候要注意下面幾個方面:
ü         使用2D圖形
ü         是Chart盡可能包含少的點
ü         如果需要,可以移除(remove)chart的legend(?????)和Title
ü         使用默認(rèn)的字體和字體大小
ü         使用FastLineSeries
ü         使用實體(solid)畫筆和畫刷格式
ü         盡量避免使用圓形和環(huán)行bar樣式
ü         不要使用背景圖片和漸變效果樣式
ü         把Chart的BevelInner和BevelOUter屬性設(shè)置為bcNone
ü         如果需要,把TChart的AxisVisible屬性設(shè)置為False
ü         把BufferedDisplay設(shè)置為false可以加速chart的重繪

1.7      [Scrolling]
   TChart有4中scroll選擇(AllowPanning屬性),分別是 不允許Scroll ( pmNone) ; 水平Scroll (pmHorizontal) ; 垂直Scroll (pmVertical) ; 水平和垂直Scroll (pmBoth)
Procedure Scroll(Const Offset:Double; CheckLimits:Boolean);
例子如下:
Chart1.BottomAxis.Scroll( 1000, True );這段代碼也等同于
With Chart1.BottomAxis do
Begin
Automatic:=false;
SetMinMax( Minimum+1000, Maximum+1000 );
    End;
1.8      [TChart中的全局變量]
ü         TeeScrollMouseButton := mbRight;設(shè)置鼠標(biāo)右鍵為TChart滾動鍵(默認(rèn))
ü         TeeScrollKeyShift    := [ ssCtrl ]; 要按住Control鍵才可以使Scroll滾動

1.9      [TChartSerries使用技巧]
    1.9.1            運行時候創(chuàng)建一個Serries, 三種方法:
        1.Var MySeries : TBarSeries ;
MySeries := TBarSeries.Create( Self );
MySeries.ParentChart := Chart1 ;
        2.Chart1.AddSeries( TBarSeries.Create( Self ) );
        3.Var MyClass : TChartSeriesClass;
MyClass := TBarSeries ;
Chart1.AddSeries( MyClass.Create( Self ) );
    1.9.2            獲得TChart中的Serries數(shù)組,也有三種方法
        1.MySeries := Chart1.SeriesList [ 0 ]
        2.MySeries := Chart1.Series [ 0 ]
        3.MySeries := Chart1 [ 0 ]
    1.9.3            SerriesCount屬性獲得SeriesList中Series的個數(shù)
    1.9.4            隱藏TChart中的Series有三種方法,但是效果不等價
        1. Series1.Active:=False; 僅僅隱藏,當(dāng)設(shè)置為true的時候還可以顯示出來
        2. Series1.ParentChart:=nil ; 隱藏,重新設(shè)置ParentChart為TChart時候可以顯示
        3. Series1.Free; 刪除了Series. 不可以恢復(fù)
    1.9.5            TChart中的數(shù)據(jù)排序
    With Series1 do
begin
    YValues.Order:=loAscending;
    YValues.Sort;
    Repaint;
end;
         定位一個點(Loacate a point)
Series1.XValues.Locate(123);
         XValue和YValue都擁有的屬性Total , TotalABS , MaxValue , MinValue


轉(zhuǎn)載自:http://control.blog.sina.com.cn/admin/article/article_add.phpphp

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产不卡在线免费观看视频| 欧美日韩乱一区二区三区| 国产免费一区二区不卡| 亚洲男人天堂网在线视频| 亚洲天堂久久精品成人| 国产精品欧美一区二区三区不卡 | 欧美亚洲三级视频在线观看| 国产精品午夜一区二区三区| 欧美做爰猛烈叫床大尺度| 亚洲精品有码中文字幕在线观看| 高清亚洲精品中文字幕乱码| 欧美日韩黑人免费观看| 日韩欧美二区中文字幕| 丝袜诱惑一区二区三区| 国产一区二区三区草莓av| 老司机精品视频免费入口| 国产日韩欧美在线播放| 成人午夜视频精品一区| 日韩精品一区二区三区av在线| 日韩一区二区三区观看| 色丁香之五月婷婷开心| 久久偷拍视频免费观看| 中文字幕乱码亚洲三区| 极品少妇嫩草视频在线观看| 91人妻人人澡人人人人精品| 欧美区一区二区在线观看| 久久精品伊人一区二区| 加勒比东京热拍拍一区二区| 黄片三级免费在线观看| 日本熟妇熟女久久综合| 中文字幕日产乱码一区二区| 男女一进一出午夜视频| 国产精品激情在线观看| 久久精品亚洲精品国产欧美| 精品国产av一区二区三区不卡蜜 | 色综合久久六月婷婷中文字幕| 欧美有码黄片免费在线视频| 亚洲精品福利视频在线观看| 国产精品丝袜美腿一区二区| 办公室丝袜高跟秘书国产| 日本欧美一区二区三区高清|