两条曲线图的问题(20分)

  • 主题发起人 主题发起人 xuefeiyang
  • 开始时间 开始时间
X

xuefeiyang

Unregistered / Unconfirmed
GUEST, unregistred user!
横坐标是单位,纵坐标是积分
根据数据库中数据用DBChart已作出曲线图,但现在还需要一根均线,如何操作
 
计算出均线后,增加一个series即可。
最好用TChart,不用TDBChart,每个系列(series)都能够控制。
 
在DBChart上不行么?
 
当然也可以。。。
TDBChart只是比TChart多了自动从数据库获取数据创建Series的功能,但是他的功能不够
灵活,因此还不如不用。
 
说的详细写可以吧(比如如何设置),我对这些控件不是很熟
 
为什么总是没人应答
 
增加一个series,数据源选择函数:AVERAGE
参数为指定的另一 series
 
To net.meteor
不太明白
 
procedure TFormgryjchart.addline(Sender: TObject);
var
size : integer ;
i,j : integer ;
TempQuery :TQuery;
SeriesClass:TChartSeriesClass;
Arrayyf,arrayje: array ofdo
uble;
NewSeries : array of TlineSeries ;
begin
size := StrToInt(FormatDateTime('mm',DateTimepicker2.DateTime))-StrToInt(FormatDateTime('mm',DateTimepicker1.DateTime))+1;
// showmessage(inttostr(size));
if Arrayyf=nil then
begin
SetLength (Arrayyf,size);
setlength (arrayje,size);
end;
TempQuery := TQuery.Create(self);
TempQuery.databasename := DataBaseName;
try
try
selectData(TempQuery,'yjbchart_dpro');
except
application.messagebox(pchar('数据查询失败'), '信息', mb_iconexclamation + mb_ok);
end;
TempQuery.first;
// j:= low(arrayyf) ;
for i:=low(arrayyf) to high(arrayyf)do
begin
arrayyf := TempQuery['yf'];
arrayje := TempQuery['je'];
TempQuery.next;
// j := j+1;
end;

finally
TempQuery.close;
TempQuery.Free;
end;
//数组填充后
// showmessage('count'+inttostr(chart1.SeriesCount)) ;
i := chart1.SeriesCount;
setlength(NewSeries,i+1);
// showmessage('now'+inttostr(i));
NewSeries:= TlineSeries.Create(chart1) ;
chart1.AddSeries (NewSeries);
Newseries.ParentChart := chart1 ;
// Newseries := TlineSeries( chart1.GetASeries ) ;
Newseries.title := copy(Treeview1.Selected.Text,pos(']',Treeview1.Selected.Text)+1,length(Treeview1.Selected.Text)) ;
{ if Newseries <> nil then
begin
Newseries.Clear ;
// showmessage('cleared');
end ;
}
for j := low(arrayyf) to high(arrayyf)do
begin
NewSeries.AddXY(arrayyf[j],arrayje[j],'',);
end;
chart1.AutoRepaint := true ;
end;
------------------------------------------------------------------
分太少了。
 
请加点注释好吧
看不太懂
 
建议用TChart,计算出均线后,增加一个series
AddXY();
 
如果增加一个series,那么右上脚的数据数据信息就变成了两个不同颜色的线
数据的具体值就不好体现了
 
用tchart方便些:
rsdchart.FreeAllSeries;
with tbarseries.Create(self)do
//柱状图
begin
parentchart:=rsdchart;
add(zgll[1],'1',claqua);
add(zgll[2],'2',claqua);
add(zgll[3],'3',claqua);
add(zgll[4],'4',claqua);
add(zgll[5],'5',claqua);
add(zgll[6],'6',claqua);
add(zgll[7],'7',claqua);
add(zgll[8],'8',claqua);
add(zgll[9],'9',claqua);
add(zgll[10],'10',claqua);
add(zgll[11],'11',claqua);
add(zgll[12],'12',claqua);
add(zgll[13],'13',claqua);
add(zgll[14],'14',claqua);
marks.Visible:=true;
marks.Style:=smsvalue;
rsdchart.Legend.
Visible:=false;
end;
with tlineseries.Create(self)do
//曲线图
begin
parentchart:=rsdchart;
add(lastzgll[1],'1',clred);
add(lastzgll[2],'2',clred);
add(lastzgll[3],'3',clred);
add(lastzgll[4],'4',clred);
add(lastzgll[5],'5',clred);
add(lastzgll[6],'6',clred);
add(lastzgll[7],'7',clred);
add(lastzgll[8],'8',clred);
add(lastzgll[9],'9',clred);
add(lastzgll[10],'10',clred);
add(lastzgll[11],'11',clred);
add(lastzgll[12],'12',clred);
add(lastzgll[13],'13',clred);
add(lastzgll[14],'14',clred);
marks.Visible:=true;
marks.Style:=smsvalue;
rsdchart.Legend.
Visible:=false;
end;

同感!!分太少了
 
TO 山水之间
我还是没看到那根均线阿
 
只是光加一条平均线吗?
Tdbchart里面不就有吗?就是在选择图形的界面(就是选折线图,饼图什么的)
边上还有一个有关统计的页面,里面有什么平线,总和,最大,最小的,你选一下就可以了
 
不太会用啊
 
帮我也看看
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1605345
 
我用的还是DBChart,增加了一个series,
可是右上角的数据信息就变成了两个不同颜色的线(均线和数据线)
而数据的具体值就体现不出了
我希望第一行是均值,紧接着是具体数据的值
咋办?
分数可以再开贴子加
 
我用的还是DBChart,增加了一个series,
可是右上角的数据信息就变成了两个不同颜色的线(均线和数据线)
而数据的具体值就体现不出了
我希望第一行是均值,紧接着是具体数据的值
咋办?
分数可以再开贴子加
 

Similar threads

S
回复
0
查看
835
SUNSTONE的Delphi笔记
S
S
回复
0
查看
765
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
767
DelphiTeacher的专栏
D
后退
顶部