dbchart的简单问题,如何让他按y轴显示数据(up有分)应该不太难,怎么没人领分呢? ( 积分: 200 )

  • 主题发起人 主题发起人 东问西答
  • 开始时间 开始时间

东问西答

Unregistered / Unconfirmed
GUEST, unregistred user!
a b
1 2
2 2
3 3
4 2
a作为x轴,y作为y轴,显示图形如下
4
3 x
/ /
2 x--x x
1
1 2 3 4
我想显示成如下图形(a作为y轴,b作为x轴)
4 x
/
3 x
/
2 x
|
1 x
1 2 3 4
可是如果单纯用a作为y轴,b作为x轴,显示的结果为
4 x
| /
3 | x
|
2 x
|
1 x
1 2 3 4
 
a b
1 2
2 2
3 3
4 2
a作为x轴,y作为y轴,显示图形如下
4
3 x
/ /
2 x--x x
1
1 2 3 4
我想显示成如下图形(a作为y轴,b作为x轴)
4 x
/
3 x
/
2 x
|
1 x
1 2 3 4
可是如果单纯用a作为y轴,b作为x轴,显示的结果为
4 x
| /
3 | x
|
2 x
|
1 x
1 2 3 4
 
试试先
ding
 
有没有人在啊?
 
tchart不直接提供这样的功能,
你可以取下chart区域的图象,
然后自己做翻转处理后用图形控件显示出来
 
试了,没成功
看来只能用楼上的方法
 
有没有其他的控件可以完成这样的显示操作?
郁闷中。
 
我个人认为dbchart的line在实现的时候必须以x来确定y,所以无法实现以y确定x,解决方法,

将纪录逐条串位,比如原来是

a b
1 2
2 2
3 3
4 2
处理后为

a b 终点坐标x 终点坐标y
1 2 2 2
2 2 3 3
3 3 4 2
4 2 4 2

注意:adoquery1中 select * form 表名 order by x desc


var firx,firy:double;
begin
with adoquery1 do
begin
first;
firx:=fieldbyname(x).AsFloat ;
firy:=fieldbyname(y).AsFloat;
edit;
fieldbyname('终点坐标x').Asfloat:=firx;
fieldbyname('终点坐标y').AsFloat:=firy;
post; next;
while not eof do
begin

edit;
fieldbyname('终点坐标x').Asfloat:=firx;
fieldbyname('终点坐标y').AsFloat:=firy;
post;
firx:=fieldbyname(edit1.text).AsFloat;
firy:=fieldbyname(edit2.text).AsFloat;
next;
end;
end;
end;
 
然后使用dbchart中的series arrow来显示即可。
就是有点麻烦,有没有高人给个好的建议啊。
 
addxy(Y轴数据,X轴数据);
你查一下ADDXY就可以知道了,也就是说数据要一个一个添加,不过如果要显示的话这样做不能添加大于1W以上的点,要不显示就会很慢,一次我添加了500*10000个点的数据,每次移到X轴或者放大缩小都要好久,最可怕的是打开会用20多S,让人受不了
 
series1.AddXY(2,1,'2',clTeeColor) ;
series1.AddXY(2,2,'2',clTeeColor) ;
series1.AddXY(3,3,'3',clTeeColor) ;
series1.AddXY(2,4,'2',clTeeColor) ;
呵呵,这样的结果还是不行的那种。
 
series2.AddArrow(2,1,2,2,'2',clteecolor);
series2.AddArrow(2,2,3,3,'2',clteecolor);
series2.AddArrow(3,3,2,4,'2',clteecolor);
series2.ArrowHeight:=1;
series2.ArrowWidth:=1;
不过,谢谢boy2002cn的提醒,我发现可以这样用。
 
接受答案了.
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部