teechart属性设置Word文档格式.docx
《teechart属性设置Word文档格式.docx》由会员分享,可在线阅读,更多相关《teechart属性设置Word文档格式.docx(19页珍藏版)》请在冰点文库上搜索。
AllSerieswith"
Pointer"
property所有序列都拥有"
属性
图表的SeriesList属性
TChart1.SeriesList.ClearValues
TeeChartProActiveX4.0的这些特性使得它具有极大的灵活性,并且使用起来非常方便,只要写很少的代码,就可以做出各种复杂、漂亮的图表。
TeeChart图表控件类的属性和方法
TeeChart图表控件的主类是TChart。
TChart中使用了56个类、325个属性、125个方法以及28个事件,这使得TChart具有非常强大的功能。
本文仅简单地介绍其中一些重要类的属性和方法。
TChart.Height:
图表的高度(像素);
TChart.Width:
图表的宽度(像素);
TChart.Header:
图表的题头(Ititles类);
TChart.Series:
序列(Series类的数组);
TChart.Axes:
坐标轴(Iaxes类);
TChart.Legend:
图例(Legend类);
TChart.Panel:
面板(Ipanel类);
TChart.Canvas:
画布(Canvas类)。
Series是要显示的数据的主体。
在一个图表中可以有一个或多个序列,每个序列可以有不同的显示类型,如Line、Bar、Pie等等。
Axes控制图表坐标轴的属性,在缺省的情况下,坐标轴可以自动地根据不同的数据设置好标度范围和间隔,当然也可以手工调整。
Legend控制图表的图例显示。
Legend是图表中的一个长方形的用来显示图例标注的区域。
可以标注Series的名称或者Series中的项目和数值。
Panel可以设置图表的背景。
可以使用渐变的颜色或者图像文件作为整个图表的背景。
Canvas可以让设计者绘制自己的图形。
使用方法和Delphi中的Canvas一样。
有TextOut、LineTo、Arc等各种画图的方法可以调用。
TChart的一些属性实际上是其他类的变量,这些类又具有自己的属性和方法。
如Ititles类又具有Text、Color、Font等属性,我们可以用这些属性来设置题头的文本、颜色和字体。
TeeChart图表控件和其他的图表控件相比,有一个非常重要的特点是TeeChart图表控件可以把图表保存为一个JPEG格式的图形文件。
调用格式如下:
TChart.Export.SaveToJPEGFile(FileName,Gray,Performance,Quality,Width,Height)
其中FileName是JPEG文件的保存路径和文件名,路径应该是操作系统中的绝对路径,而不是IIS中的相对路径,IIS对相应的保存目录应该具有写权限。
Gray指明是否保存为黑白图像。
Performance指明JPEG是生成质量优先还是速度优先。
Quality是一个0到100的整数,100时JPEG质量最好,但文件最大;
Quality越小则生成的文件越小,但图像质量也随之下降。
为了解决在多用户并发访问Web的情况下,JPEG文件互相覆盖的问题,我们使用了如下所示的一种JPEG文件的命名机制:
OutputJPEGFile=“Chart”&Session.Sessionid&
Replace(Time,“.”,“”)&“.jpg”
在文件名中包括了Sessionid和当前时间,并使用后台进程定期删除过期文件。
TeeChart控件应用实例
下面是一个简单的ASP程序,从中可以看到TeeChart图表控件在ASP中的使用方法。
程序的运行环境为:
Windows2000Professional、IIS5.0和TeeChartProActiveX.0测试版。
<
HTML>
HEAD>
TITLE>
TeeChartJPEGChartDemoPage<
/TITLE>
/HEAD>
BODY>
!
--引入TeeChart常数-->
--METADATANAME=“TeeChartPro4.0
ActiveXControl”TYPE=“TypeLib”
UUID=“{008BBE7B-C096-11D0-B4E3-00A0C901D681}”-->
%
--建立ActiveXObject-->
SetTChart1=CreateObject(“TeeChart.TChart”)
--设置高度和宽度-->
TChart1.Height=250
TChart1.Width=500
--设置图表题头-->
TChart1.Header.Text.Clear
TChart1.Header.Text.Add“K180次旅客列车日发送人数统计图”
--设置图形背景-->
TChart1.Panel.Gradient.Visible=True
TChart1.Panel.Gradient.StartColor=RGB(200,255,200)
TChart1.Panel.Gradient.EndColor=RGB(255,255,255)
--添加一个序列-->
TChart1.AddSeries(scBar)
TChart1.Series(0).Clear
TChart1.Series(0).ColorEachPoint=True
TChart1.Series(0).Add180,“02/10”,clTeeColor
TChart1.Series(0).Add240,“02/11”,clTeeColor
TChart1.Series(0).Add210,“02/12”,clTeeColor
TChart1.Series(0).Add280,“02/13”,clTeeColor
TChart1.Series(0).Add218,“02/14”,clTeeColor
TChart1.Series(0).Add225,“02/15”,clTeeColor
--保存为JPEG文件-->
TChart1.Export.SaveToJPEGFileserver.mappath(“/teechart”)+“\MyChart.jpg”,False,JPEGBestQuality,85,TChart1.Width,TChart1.Height
%>
imgsrc=“MyChart.jpg”>
/BODY>
/HTML>
实现绘图步骤:
1.加入Teechart控件。
2.创建chart实例并设置相关全局属性(设置chart实例的属性将对所有其他成员,包括所有series实例产生影响)。
3.添加Series序列实例,设置该实例相关属性(设置实例化series的属性作用范围是该series实例,如果为单一series实例,可直接设置其属性而不设置chart实例),并绑定数据源。
常用属性:
(假设控件实例为WebChart1,设置全局属性也可通过实例化chart来设置,即Steema.TeeChart.ChartChart1=WebChart1.Chart;
在此不考虑这种)
WebChart1.AutoPostback=false;
//自动回发(默认)
WebChart1.GetChartFile="
GetChart.aspx"
;
//处理数据页(默认),GetChart.aspx内容后附
WebChart1.Width=400;
//显示宽度
WebChart1.Height=300;
//显示高度
WebChart1.PictureFormat=Steema.TeeChart.Export.PictureFormats.Bitmap;
//显示图片的格式,默认PNG
WebChart1.TempChart=Steema.TeeChart.Web.TempChartStyle.Session;
//设置保存数据形式,默认File,一般选session。
Chart.Aspect(外观属性)
WebChart1.Chart.Aspect.View3D=false;
//取消3D表示
Chart.Header(显示头)
WebChart1.Chart.Header.Visible=false;
//是否显示头文字
WebChart1.Chart.Header.Text="
顶部显示文字"
Chart.Axes(坐标轴)
WebChart1.Chart.Axes.Left.Title.Text="
纵坐标文字显示"
WebChart1.Chart.Axes.Bottom.Title.Text="
横坐标文字显示"
Chart.Legend(图例)
WebChart1.Chart.Legend.LegendStyle=Steema.TeeChart.LegendStyles.Auto;
//图例显示的样式,包含一下方面:
默认auto
WebChart1.Chart.Legend.Alignment=Steema.TeeChart.LegendAlignments.Bottom;
//图例显示位置(显示线条颜色,线条代表对象)
WebChart1.Chart.Legend.Visible=false;
//是否显示图例
WebChart1.Chart.Legend.Font.Color=System.Drawing.Color.Black;
//图例文本显示颜色
Chart.Panel(底板设置)
WebChart1.Chart.Panel.Color=System.Drawing.Color.AliceBlue;
//底板颜色(似乎不管用)
实例化序列:
Steema.TeeChart.Styles.Lineline1=newSteema.TeeChart.Styles.Line();
WebChart1.Chart.Series.Add(line);
//实例化线,也可以如下一句完成:
Steema.TeeChart.Styles.Lineline1=
newSteema.TeeChart.Styles.Line(WebChart1.Chart);
line1.YValues.DataMember=DS.Tables[0].Columns[2].ToString();
//设置比较刻度(纵坐标)
line1.LabelMember=DS.Tables[0].Columns[1].ToString();
//设置成员标签(横坐标)
line.Title="
111111"
//设置其标题,可以在图例上显示此标题,多线时有用
line.Color=System.Drawing.Color.Red;
//设置线条颜色,可不设置,默认
line1.DataSource=DS.Tables[0];
WebChart1.DataBind();
//数据绑定
TChart使用经验小结[喝小酒的网摘]
1、问题:
通过Addxy方法给TChart添加标记(Mark)时,发现在TChart的横坐标会随着Mark而变化,后来发现通过以下方法可避免这种情况:
双击TChart,点击Axis->
toporbottom->
labels,在styles中将labels的形式改为Value即可!
2、几个有用的属性:
图表上的每个点都是有索引的,就象一个数组一样,在OnClickSeries事件中有个ValueIndex属性,该属性可以得到鼠标所点击的点的索引值(必须将Series的Point设置为可见,鼠标点击到那个点时才可以触发该事件)。
xValue[index]、yValue[index]分别表示图表的索引为index的横纵坐标值,用这两个属性可以读取和设置索引为index的点的值,注意:
不要用xValues和yValues,这两个属性也可以达到同样的目的,但是速度非常的慢。
因为后两个在进行操作的时候可能要遍历整个图表上的值(个人观点)
在MouseDown,MouseMove,Mouseup中,可以利用xScreentoValue(x),yScreentoValue(y)得到鼠标当时所在点对应在图表上的横纵坐标值。
e.g......private
Nowindex:
Integer;
Cantuo:
boolean;
........procedureTfrmMain.Chart1ClickSeries(Sender:
TCustomChart;
Series:
TChartSeries;
ValueIndex:
Integer;
Button:
TMouseButton;
Shift:
TShiftState;
X,Y:
Integer);
begin
NowIndex:
=ValueIndex;
end;
procedureTfrmMain.Chart1MouseDown(Sender:
TObject;
Cantuo:
=true;
end;
procedureTfrmMain.Chart1MouseUp(Sender:
=false;
procedureTfrmMain.Chart1MouseMove(Sender:
X,
Y:
ifCantuothen
Series1.yValue[NowIndex]:
=
Series1.yScreenToValue(y);
这里即实现了可以在图表中拖动某一个点使其在纵轴上变化位置
Tchart分析报告
1
Tchart分析报告1.1
[概述]
TChart是delphi里面一个标准的图形显示控件。
它可以静态设计(atdesigntime)也可以动态生成。
1.2
[继承关系]
TObject
TPersistent
TComponent
TControl
TCustomControl
TWedgetControl
TChart
TCustomPanel
1.3
[tips]
1.3.1
ProVersion支持Bezier,Contour,Radar和
point3D
曲线
1.3.2
支持jpeg文件的导出
1.3.3
Chart中的Series
可以连接到Table,Query,RemoteDataset(其他数据集)
1.3.4
TChart里的series的active属性可以实现对已绘制图形的显示或者隐藏
1.3.5
在TChart中,tchartSeries是所有具体series的父类,没有画出什么来的,用一个具体的series类来创建就可以了,比如用TLineSeries、TPieSeries、
TPointSeries、
TPointSeries等等都行
1.3.6
TTeeFunctionComponent可以实现在同一个TChart里面,一个Serries对另一个Serries的统计
1.4
[问题极其使用技巧]
1.4.1
TChart中如何实现只有Y轴的放大与缩小功能?
设置BottomAxis或者LeftAxis的Automatic:
=false并同时设置Minimum,Maximum属性
1.4.2
如何固定TChart中的坐标,不使TChart中的坐标跟随Series的变化而变化?
//设置底座标
withmyChart.BottomAxisdo
begin
Automatic:
Minimum:
=0;
LabelStyle:
=talText;
//设置左坐标
withmyChart.LeftAxisdo
Title.Angle:
=270;
Title.Font:
=Self.Font;
Title.Font.Charset:
=ANSI_CHARSET;
Title.Font.Name:
='
@宋体'
Grid.Visible:
=False;
//设置右坐标
withmyChart.RightAxisdo
Title.Caption:
累计百分比(%)'
Maximum:
=100;
1.4.3
如何删除一个图形中的一个点?
使用Series的delete方法1.4.4
如何修改一个点的X或者Y
值?
LineSeries1.YValue[3]:
=27.1;
{InBubbleSeries}BubbleSeries1.RadiusValues.Value[8]:
=8.1;
{InPieSeries}PieSeries1.PieValues.Value[3]:
=111;
1.4.5
如果横坐标是时间(日期),如何进行设置?
{First,youneedtosettheDateTimepropertytoTrueinthedesiredXand/orYvalueslist.}LineSeries1.XValues.DateTime:
=True;
{Second,usethesameabovedescribedmethods,butgivethevaluesasDate,TimeorDateTimevalues}LineSeries1.AddXY(EncodeDate(1996,1,23),25.4,'
Barcelona'
clGreen);
1.4.6
如何在chart中画出的曲线某个点上标记出该点的值?
Series.Marks.Visible:
Series.Marks.Style:
=smsValue;
1.4.7
如何设置横轴或者纵轴的增长率?
Chart.BottomAxis.Increment:
=DataTimeStep[dtOneHour];
Chart.RightAxis.Increment:
=1000;
1.4.8
如何对图象进行缩放?
TChart的ZoomRect或者ZoomPercent方法(Pie图可能不支持缩放)
1.5
[TChart可以绘制的图形]1.5.1
Line(TLineSeries)
1.5.2
FastLine(TFastLineSeries)
相对Line来说,它损耗了某些属性从而来实现快速绘制
1.5.3
Bar(TBarSeries)1.5.4
Horizontalbar(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(TGa