Smart Labels/Annotations
This discussion was imported from CodePlex
smokingfish wrote at 2013-11-10 15:13:
Hello there,
first, great work - it is by far the easiest and most robust plotting library i came across yet.
I have a case where i want to display a lot of additional information about a data point.
I can put the detailed information in a custom tracker, that works great.
But i also want a summary of additional information right by the data point.
Annotation or even labels work great for that too.
Only limitation i found was when the plot is zoomed out and the annotations or labels overlap.
Is there some kind of smart annotation/label behavior planned?
Im thinking about auto hiding/collapsing overlapping annotations, so they become completely visible only when you zoom in.
Or even smart positioning for Arrow annotations, only the EndPoint is set and it looks for a non overlapping StartPoint by itself using some basic parameters (min distance, max distance etc.).
first, great work - it is by far the easiest and most robust plotting library i came across yet.
I have a case where i want to display a lot of additional information about a data point.
I can put the detailed information in a custom tracker, that works great.
But i also want a summary of additional information right by the data point.
Annotation or even labels work great for that too.
Only limitation i found was when the plot is zoomed out and the annotations or labels overlap.
Is there some kind of smart annotation/label behavior planned?
Im thinking about auto hiding/collapsing overlapping annotations, so they become completely visible only when you zoom in.
Or even smart positioning for Arrow annotations, only the EndPoint is set and it looks for a non overlapping StartPoint by itself using some basic parameters (min distance, max distance etc.).
objo wrote at 2013-11-11 19:39:
It is not planned, but that's a good idea. And making it smart will probably be a bit challenging :) Can you add a spec of a the new feature in the Issues?
I think it should be implemented as new annotation types, to keep the original ones "simple and stupid".
I think it should be implemented as new annotation types, to keep the original ones "simple and stupid".
smokingfish wrote at 2013-11-11 20:43:
Hello objo,
thanks for reply!
A new annotation type would be great too. I'm already playing around with some algorithms I found so far, I will try to contribute to that.
But yes, it is really challenging - there are whole papers about it.
Here are some useful information I found about the topic:
Force based Label placement sample in JS from the D3 project
Label placement on scatter charts
2006 Microsoft Patent for label placement, pretty useless but i guess that is what is used in MS Chart
Very nice dissertation from 1999
Nice paper about different algorithms
The term "smart" came from the MS Chart control, which I used for a customer in a WinForms application till now.
There you have "smart labels" which do mostly what i described and I think can be a good basis to look at for useful features.
If I cant do it myself I will add it in the Issues later.
thanks for reply!
A new annotation type would be great too. I'm already playing around with some algorithms I found so far, I will try to contribute to that.
But yes, it is really challenging - there are whole papers about it.
Here are some useful information I found about the topic:
Force based Label placement sample in JS from the D3 project
Label placement on scatter charts
2006 Microsoft Patent for label placement, pretty useless but i guess that is what is used in MS Chart
Very nice dissertation from 1999
Nice paper about different algorithms
The term "smart" came from the MS Chart control, which I used for a customer in a WinForms application till now.
There you have "smart labels" which do mostly what i described and I think can be a good basis to look at for useful features.
If I cant do it myself I will add it in the Issues later.
Customer support service by UserEcho