如何使DBChart中的多条曲线的横轴一致?(200分)

  • 主题发起人 主题发起人 three
  • 开始时间 开始时间
T

three

Unregistered / Unconfirmed
GUEST, unregistred user!
例如:
两条曲线的横轴均为日期
曲线一的日期为: 1 2 3 4 5 7
曲线二的日期为:3 4 5 7
按道理这时DBChart的横坐标应为:1 2 3 4 5 6 7
而事实上横坐标显示为:3 4 5 7 5 7
而且曲线二的3与曲线一的1重叠 4与2重叠 依次...
如何解决该问题?
 
我试过了.没问题啊?
曲线一 与 曲线二 在DBCHART 里的SERIES -> DATASOURCE
的日期都应标为DATETIME 吧?
 
日期是1。2。3。4 。5。6。7 什么意思?
 
没问题,你是否open了相应的table,U can first close that table , then
open it again. BTW, 在横主上显示的日期间隔同数据的多少有关。你可减少需显示的数据量再试!
 
我的猜想:
曲线一的日期为: 1 2 3 4 5 7
是 three 输入一系列的日期,只是用123来代表.要不然在
已经定义的FIELD为日期,怎能输入123呢?
 
我们写的是一个通用程序,横轴可以由用户自行指定表中的某一字段,当然也可以为日期型。
两条曲线的横轴均为日期
曲线一的日期为: 1 2 3 4 5 7
曲线二的日期为:3 4 5 7
曲线一、二的日期是从表中取出来的,意思是第一条曲线在1 2 3 4 5 7日有数据,而第二条曲线在3 4 5 7日有数据,其余日期都没数据,在解决现实问题时我们不能假设每条曲线每天都有数据。
按道理这时DBChart的横坐标应为:1 2 3 4 5 6 7
而事实上横坐标显示为:3 4 5 7 5 7
而且曲线二的3与曲线一的1重叠 4与2重叠 依次...
这个问题我们采用了变通的办法,就是取横轴的并集,在每条曲线缺少数据时补值问题又产生了,在DBChart中曲线不能产生断点,那么补值补什么值,似乎都不科学,不能真实地反映客观情况。
这不知是不是DBChart的Bug,只假设了每条曲线每天都有数据,如股票,如果某条曲线缺少几天如何解决?这就是现在我们碰到问题。
 
不知你用的是TEECHART 那个版本?
我制了2个TABLE,
TABLE1 - FIELD1 : MYDAY1(DATE)
FIELD2 : QTY1(NUMBERS)
TABLE2 - FIELD1 : MYDAY2(DATE)
FIELD2 : QTY2(NUMBERS)
MYDAY1 QTY1
===== =====
1-2-2000 56
2-2-2000 78
3-2-2000 45
4-2-2000 54
5-2-2000 42
7-2-2000 97
MYDAY2 QTY2
===== =====
3-2-2000 25
4-2-2000 31
5-2-2000 11
7-2-2000 20
在DBCHART 里用2条直线SERIES1 和SERIES2
SERIES1 的DATASOURCE -> DATASET = TABLE1
X : MYDAY1
Y : QTY1
SERIES2 的DATASOURCE -> DATASET = TABLE2
X : MYDAY2
Y : QTY2
画出的DBCHART横坐标为:
1-2-2000 2-2-2000 3-2-2000 4-2-2000 5-2-2000 7-2-2000
6-2-2000没有数据,所以 5日与7日的数据是连线.
没有见到你说的问题.

 
您看过第二条曲线是从3日的位置,是从1号开始画的还是从3号开始画的?
 
three:我知道你所说的意思,我遇到的问题和你一样,我用的是一个Query,并且没
有把datasource与series绑定,而是在程序中赋series的X,Y坐标,于是就出现了所说
的情况.
我曾经绕了一个弯,在没有数据的那一天把series的值赋为0,这种做法在条状图
中可行,在线图中就很勉强。
 
我觉得关键是没有制定x的坐标
 
X坐标肯定是有的,datasource与series也是绑定的,你们总是无法想象我们的环境,所以无法进入那种状态。我们怀疑是Delphi的bug,所以将分数平分给几位,不守可以继续讨论。
 

Similar threads

D
回复
0
查看
778
DelphiTeacher的专栏
D
D
回复
0
查看
818
DelphiTeacher的专栏
D
后退
顶部