|
From: Harald H. <h.h...@tu...> - 2005-01-28 21:53:33
|
On Fri, 28 Jan 2005, Hans-Bernhard Broeker wrote:
Hans-Bernhard,
> Daniel J Sebald wrote:
>
> [...]
> > I would too. However, might it be possible to use some simple
> > algorithm that does an OK job in most cases?
>
> I rather much doubt that such a thing exists. In contouring, I suspect
> most cases are too tricky for any simple algorithm.
>
> > The worst case scenario is when the contours are rather small oval
> > shapes, or rather close together. But if it is unacceptable to the
> > user, then he or she could turn off annotation.
>
> We really need better control than just on/off on this.
I also think that it is nearly impossible to find a fully automatic
mechanism to produce contour labels.
Hans-Bernhard, what do you think about my suggestion that the user could
provide a curve in x-y space (parametric function or data points). The
labels can then be placed where the given curve and the contour lines
intersect.
A syntax could be as follows:
set cntrparam labels along 3*t, 3*t**2
set cntrparam labels along 'filename.dat' using 1:2
The variable t should be free since u and v are used for parametric
splots. Using 'set trange' the user can determine in which area of the
plot labels are produced.
With 'set trange [0:100]', for instance, only the first quadrant gets
contour labels in the example above.
> Some other random points:
>
> *) I'm strictly against any GUI-only feature. Once we have a suitable
> command line method of specifying the locus of those contour labels, we
> can think of a mouse interaction method of doing the same. We may even
> have to keep in mind that a GUI should be possible while setting up the
> command line syntax. But command line is still *mandatory*.
I fully agree.
> *) We're going to paint labels in the middle of the data area. I.e. we
> risk covering up critical aspects of the plotted data, which I consider
> a strict no-no. That's why a simple on/off control would be
> insufficient. We can't seriously expect users to accept that if the
> default placement puts on of a dozen labels in some undesirable place,
> their only option is to give up on in-graph contour labels altogether
> (or roll their own by plotting an extra file 'with labels')
I also fully agree. Using the function described above, this shortcoming
could be avoided since the user has control over the labels. The syntax
could even be enhanced:
Write a label for all contour lines:
set cntrparam labels along 3*t, 3*t**2
set cntrparam labels along 'filename.dat' using 1:2
Write a label for the contour lines 3,4,5,6,7,8:
set cntrparam labels 3,1,8 along 3*t, 3*t**2
Write a label for the contour lines 3,4,5,8:
set cntrparam labels (3, 4, 5, 8) along 3*t, 3*t**2
set cntrparam labels ('less' 3, 4, 5, 'much' 8) along 'filename.dat' using 1:2
> *) In-graph contour labelling must take into account whether a terminal
> can render rotated text or not. There will be a considerably large
> number of cases where horizontal-only labels are hard or impossible to
> place, while text oriented parallel to the contour line would still work.
That's also correct. Maybe, an option should be provided that decides if
the labels are rotated with the contour or not (if the terminal is capable
to do that):
set cntrparam labels along 3*t, 3*t**2 norotate
set cntrparam labels along 3*t, 3*t**2 autorotate
set cntrparam labels along 3*t, 3*t**2 rotate by 45
Regards
Harald
--
Harald Harders
h.h...@tu...
http://www.harald-harders.de
|