What to do when data exceeds screen resolution

TeeChart VCL for Borland/CodeGear/Embarcadero RAD Studio, Delphi and C++ Builder.
Post Reply
Andrew S
Newbie
Newbie
Posts: 42
Joined: Wed Jul 28, 2004 4:00 am

What to do when data exceeds screen resolution

Post by Andrew S » Wed Jul 11, 2007 6:16 pm

I'm using TeeChart Pro 7.11 for Delphi 2007.

I use a number of fastLine series to display historical data regarding the signal quality of some wireless equipment. I run into a problem if I collect enough data and set the BottomAxis.Min/Max to automatic in order to see the whole dataset. Basically, the number of X Values exceeds the resolution of my screen, so the chart may only be able to display every other point (or less!). The problem is that we're specifically looking for signal instability, which can happen very quickly. I have found a couple times where a peak in the data was obscured by the fact that not all points were displayed.

Obviously, modifying the min/max or zooming can resolve this, but I'm looking for some other solution which will allow me to quickly view the entire history, while not missing any data. Is there some way within TChart to select which point to draw if more than one are going to share a pixel? Do you have any other suggestions? I can send you some screenshots if my description is unclear.

Thanks,

Andrew

Pep
Site Admin
Site Admin
Posts: 3303
Joined: Fri Nov 14, 2003 5:00 am
Contact:

Post by Pep » Thu Jul 12, 2007 10:20 am

Hi Andrew,

I'm afraid there's no other way than adding a custom mark for points which have the same x and y value or between specific range.

Keith
Newbie
Newbie
Posts: 17
Joined: Tue Mar 09, 2004 5:00 am
Location: South Africa
Contact:

Post by Keith » Mon Jul 16, 2007 7:27 am

Andrew,

I have a similar problem. My idea is not ideal, but maybe will help.

Could you not step through the data, and take a minimum/maximum for a 'period'. i.e. if you can only display 1,000 points on the x-axis and you have 10,000 bits of data, then you would only be able to show one in ten points. Step through the data and collect the maximum value for the 10 points and show that.

Another solution is to use two graphs: one created as above (sampling the data every x points) and then use another chart which allows you to zoom into the selected period, showing every point.

Failing that, use paging to show every point?

Regards,
Keith

xxxxxx
Advanced
Posts: 128
Joined: Tue Jun 19, 2007 12:00 am
Location: Russia
Contact:

Post by xxxxxx » Mon Jul 16, 2007 8:51 am

How's about changing DrawAllPoints property depends from current Zoom in OnZoom and OnUndoZoom events?

Andrew S
Newbie
Newbie
Posts: 42
Joined: Wed Jul 28, 2004 4:00 am

Post by Andrew S » Mon Jul 16, 2007 3:13 pm

Thanks for the suggestions.

My first problem is that it's difficult to predict what I would be looking for. Peaks can go either way, so my line could hover around -66 for a couple hours and then either spike up to -40, or drop down as low as -89. In fact, it often does both. I need to be able to see both the peaks and valleys. If it does both within my 10-sample span, and I display only the max or min of those values, then I've obscured either one or the other.

My second problem is mostly just a problem of horsepower. If I do too much work refreshing the chart, then it takes so long that it starts to exceed my polling interval. I've already had to rewrite a bunch of code to avoid using sqrt() :)

Andrew

xxxxxx
Advanced
Posts: 128
Joined: Tue Jun 19, 2007 12:00 am
Location: Russia
Contact:

Post by xxxxxx » Mon Jul 16, 2007 6:59 pm

If you need to monitor both overall trend and extreme values may be it's worth to have 3 series with moving median or average and say 90-95%percentiles?

Post Reply