画折线图(200分)

D

dzm5773

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠:
我有一个问题:把一组变量用折线图的形式动态表现,应该用什么控件?
多谢!!!
 
delphi自带的chart,试试看
或者自己在canvas上画
 
如何做?主要是数据的装入,还有chart是否灵活?
 
chart 不错,我以前用过的.
如果是数据库,还有DBChart.
 
我要也兜售chart.
把chart的SeriesList设为你要的折线图(line),
然后就对这个Series1用add方法加值吧,看看帮助,挺好用的。
 
还可以用DELPHI3的TEECHAR,动态的。此类控件非常多,CHART的使用
你只要看看DEMO就会了。
 
chart is good. and easy to use.
if you want you could also use dbchart and QChart(i fogot the name
but it is used in q report)
 
拉一个CHART到Form中,双击Chart,就可以选择显示的图形式样了。
数据和它相联系我是这样做的。
For b := 1 To 49 Do
chart1.series[0].clear;//Series[0]的格式为Fast line或LINE
For b := 1 To 49 Do
Begin
chart1.series[0].add(strtoint(Stringgrid1.cells[b, 20]), '', chart1.series[0].seriescolor)
End;
若你不用TStringgrid,可以用数组或其它东西。它的数据只能是整型。
 
各位:
chart的属性,方法。
 
> chart的属性,方法。
一大堆啊,查帮助吧.不过,Very easy.
 
请举一实际的例子,画的图要象股市的那种折线图。我可以再加分。
 
首先在IDE中在窗口中加入一个CHAT,然后在CHAT中增加一个LINESERIES,然后
将LINESERIES的数据来源设置为NO DATA
假设你的股票点数放在数组VALUES中,每一个点数的时间放在数组LABEL中

这样你只需运行以下过程,就可得到你想要的曲线图了。

var i:integer
begin
for i:=1 to ValuesCount do
Series1.AddXY(i,values,label,clTeecolor);
end;

若想调整Y轴数值比例可设置CHAT 的leftaxis.maximum和leftaxis.minimum;
 
对心心说:你说的绝对错误!!居然说只能用整数!!!
我怀疑你从来没用过TeeChart,简直对此一窍不通。
TeeChart的家族成员:TChart,TDBChart,TQRChart,TDecisionGraph,
可以说是做图表非常强大,非常灵活的工具。
不论是整数、实数,还是日期型数据都不在话下。
对xuwentao说:加一个数组的数据哪用如此麻烦:
Series1.AddArray(Values);一句话就行了。
调整Y轴的最大和最小值要先设ChartAxis.Automatic:=false;
或者单独设ChartAxis.AutomaticMaximum:=false;和
ChartAxis.AutomaticMinimum:=false;
数值间隔的设置要这样:ChartAxis.Increment:=50;
ChartAxis在这里是指Chart的LeftAxis,RightAxis,BottomAxis,TopAxis.

对dzm5773说:
Delphi的TeeChart包含TChart,TDBChart,TQRChart,TDecisionGraph,四个组件。
最常用的是CHART,其他三个都继承自CHART:DBCHART增加了和数据库的连接,
QRCHART用与图表的打印,DECISIONGRAPH用于和决策支持控件相连接。
只要学会CHART就行了!
CAHRT就是一个坐标系,有四个轴,而在其中显示的各种曲线、折线、柱状图、饼图
等等,则是另一种对象TSeries,包括:
TLineSeries(三维线形),TFastLineSeries(二维线形),TPieSeries(饼图),
TBarSeries(柱状图),THorizBarSeries(水平柱状图),TPointSeries(点图),
TAreaSeries(区域图)...十几种类型。
首先在FORM上放一个CHART,双击CHART打开CAHRT EDITOR,选CHART页的
SERIES子页(默认),点击ADD按钮,在弹出的SERIES选择对话框中选一种
你想要的线形,OK确定。
这时运行将无结果,因为还未给SERIES加值。
假设刚才加的SERIES为SERIES1(默认),加值方法很多,暂举几种:
//No.1,对任何类型的SERIES都适用,最常用的一种
Series1.AddXY(xvalue,yvalue,xlabel,clTeeColor);
//xvalue,yvalue为Double型数值,
//xlabel为显示的字符串,若为空,则自动显示xvalue
//最后一个参数为加的这一点的颜色,若写clTeeColor,则让Delphi自动处理

//No.2,直接把一个Double型数组的所有值加到SERIES中去
Series1.AddArray(Arrayname);

此外还有AddX,AddY,以及每种SERIES所特有的方法,不再一一列举。

Chart有上百个方法,SERIES也有几百个方法,以后慢慢讨论吧。
最好提一些具体的问题。
感叹Chart的功能强大!!!!!!!!!!!
 
dzm5773:

这个问题已经很长时间没有人参加讨论,为保持版面
整洁,节约网友时间,请提问者采取必要处理措施。
关于图形图象版管理细则,请参见<a href="http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=111927">这个</a>问题。如两天
内提问者没有响应,我将采取强制措施。

如有管理建议,请到<a href="http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=111927">这里</a>提出。谢谢!
 
多人接受答案了。
 
分配积分
 
顶部