I have been trying to build an application which should be able to display 4 multi-line charts on a single screen, where each chart being plotted has 10/15 lines seires and each line has around 4000/5000 points (XY values).
(so a total of around 40000/50000 points per chart)
It works fine as such and the charts get displayed properly.
Now I want to show just the title for each line as a tooltip when the mouse moves over the line.
But as soon as I add a SeriesHotSpot to show tooltip to each chart, the application starts behaving in an abberant manner. In most cases it simply hangs, whereas in other cases Tooltip does not come on all lines or in some cases other controls on the screen(like a dropdown etc) stop working etc.
(SeriesHotSpot is working fine for charts with fewer points).
Can anyone please help me acomplish this?
Can we show tooltip for a few selective points (say the last 20/30 points on the line) for each line, so that the application does not hang or something?
Thanks and Regards
Manreet Jassar
SeriesHotSpot/ToolTip problem for large amount of data
-
- Site Admin
- Posts: 14730
- Joined: Mon Jun 09, 2003 4:00 am
- Location: Banyoles, Catalonia
- Contact:
Hi Jassar,
I could reproduce the problem here and added it (TF02012020) to our defect list to be fixed for future releases.
Using this code:
I've found that over 1030 points per series some inconsistency is present and increases with the series points.
In the meantime, a workaround could be deriving a new series type from the series you're using and override the GetBounds method. You could then only return the call to base.GetBounds() for a certain number of index, e.g.:
Here you'll find an example of creating a custom series type inheriting from an existing series type.
I could reproduce the problem here and added it (TF02012020) to our defect list to be fixed for future releases.
Using this code:
Code: Select all
protected void Page_Load(object sender, EventArgs e)
{
Steema.TeeChart.Chart ch1 = WebChart1.Chart;
ch1.Aspect.View3D = false;
for (int i = 0; i < 10; i++)
{
Steema.TeeChart.Styles.FastLine fastLine1 = new Steema.TeeChart.Styles.FastLine(ch1);
for (int j = 0; j < 1030; j++)
{
ch1[i].Add(j+i*50);
}
}
Steema.TeeChart.Tools.SeriesHotspot hotSpots1 = new Steema.TeeChart.Tools.SeriesHotspot(ch1);
hotSpots1.GetHTMLMap += new Steema.TeeChart.Tools.SeriesHotspotEventHandler(hotSpots1_GetHTMLMap);
}
void hotSpots1_GetHTMLMap(Steema.TeeChart.Tools.SeriesHotspot sender, Steema.TeeChart.Tools.SeriesHotspotEventArgs e)
{
e.PointPolygon.Title = e.Series.Title;
}
In the meantime, a workaround could be deriving a new series type from the series you're using and override the GetBounds method. You could then only return the call to base.GetBounds() for a certain number of index, e.g.:
Code: Select all
if(index % 50 == 0) { return base.GetBounds(index);}
Best Regards,
Narcís Calvet / Development & Support Steema Software Avinguda Montilivi 33, 17003 Girona, Catalonia Tel: 34 972 218 797 http://www.steema.com |
Instructions - How to post in this forum |