[Kst] Re: On the way to 2.0.3

Barth Netterfield netterfield at astro.utoronto.ca
Sun Feb 13 04:21:14 CET 2011

Thinking some more:

There are several things associated with a curve:
i) Name: eg, Inner Frame Gyro
ii) Quantity: eg, Rate
iii) Units, eg, ^o/s

Clearly, the axis should always have Quantity and Units if they are defined.
 eg, "Rate [^o/s]"
I think it is fine to assume that an axis has only one quantity [units] even
if there are multiple curves in the plot.

I think that the Name should appear either in the top label or the legend,
at the user's choice, and not in the axis label, unless there is only one
curve int he plot, and quantity/units are not defined.

This is what I have just re-implemented.

On Sat, Feb 12, 2011 at 6:54 PM, Nicolas Brisset <nicolas.brisset at free.fr>wrote:

> 2) legends tend to appear on the curves too often (as per Murphy's law) and
> you need to move them manually, which is a pain => if there is only one
> curve use a left label, if there are more use a legend as mentioned in 1)
> but allow the legend to be placed above the plot (as sort of top label if
> you wish, still inside the plot object but above the top X axis)

Like a super top label...  I think I like it.  Not for 2.0.3 though.

3) as legends are important and should take up as little space as possible,
> and since plots are usually wider than tall as Barth noticed, we should lay
> them out horizontally by default, while I think "Display vertically" is the
> default right now


> 4) units are very very important, they have to be shown if they exist, and
> be as close as possible to the corresponding axis => either put it in
> parentheses or brackets after the name of the variable, or on the axis if
> it's the same for all plotted curves

Units always in the axis label if they exist.

> 5) try to keep legends short => if all curves have the same X vector, put
> its name in the bottom label and use only the Y vector name in the legend
> (right now the x vector is repeated uselessly). The same applies for units:
> if all curves have the same unit (which should very often be the case, at
> least until we support multiple axes), then put the unit on the axis and
> don't repeat it in the legend

Yes.  I will look into this for curves.

> 6) I presume we can make the assumption that identical units imply
> identical quantities


> A small, slightly unrelated point while I'm thinking of it: let's not
> forget that at some point it would be nice to support dual/multiple axes. I
> think we should do something like Origin:
> http://www.originlab.com/www/products/image/graph_multipleXYaxes_tchgrph_486px.png(btw, coloring the axes like the corresponding curve is a pretty cool
> option). This shows again that the top label is not very well suited to put
> unit information, or even variable names.

Its in my wishlist.

> So, now let's try to do it in pseudo-code. Barth, this is just so that you
> forgive me for the numerous requirements and get motivated to do it for
> 2.0.3 :-) Of for Peter, if he beats you to it.
> I think it requires the following properties in plot objects (maybe they
> are already there, I haven't checked):
> - legend position enum: above plot (default), in plot fixed position, in
> plot auto position (for the future, when we use collision detection to
> automatically put it somewhere it minimally covers curves!)

Plot auto can be bad for real time data - legend bouncing around!  But I
like the 'super top-label' idea.

> - legend layout: horizontal (default), vertical
> - legend wrap: reduce font size, carriage return (I'm writing this since
> I'm thinking of it, but that's probably for post-2.0.3). That is what
> "legends should be wrapped to always fit inside their plot" hints at in the
> roadmap
> - legend show: always, auto (default - means yes if there is more than one
> curve, no otherwise), never (maybe the user has put it manually, or in only
> one plot)

Right now this is not a property of the plot, but is rather a datawizard
option at creation time.

> - legend item contents: Y vector name (default), Y vector name + [unit],
> quantity: Y vector name + [unit], Y vector name vs X vector name, etc...
> (there is probably a smarter way to handle all combinations, maybe another
> property to remember whether x, y, both or none need units...)

Units don't ever belong in auto-legend names.  They belong on the axis.

C. Barth Netterfield
University of Toronto
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/kst/attachments/20110212/c4c6d6b5/attachment.htm 

More information about the Kst mailing list