Re: Customize Chart needs love before release
- From: Adrian Custer <acuster gmail com>
- To: Emmanuel Pacaud <emmanuel pacaud univ-poitiers fr>, "Andreas J. Guelzow" <aguelzow taliesin ca>
- Cc: gnumeric-list gnome org
- Subject: Re: Customize Chart needs love before release
- Date: Mon, 29 Oct 2007 10:47:03 +0100
Hey Emmanuel, all,
Emmanuel, again sorry for coming on so strong. The disappearing charts
reminded me of the old days. You don't know this about me but I arrived
into the Gnumeric project back in the days when computers were vaccum
tubes and Guppi ruled the charting world (I'm thrilled to see a "Guppi"
theme whatever that may mean). I spent a lot of time, back in the day,
breaking trow's work in any way I could. So seeing a new area for users
to prod the charts, I set at breaking things and was very surprised to
see how easily I could make things difficult for everyone: users,
documenters, bug reporters and coders. "my chart disappeared" is a
puzzle kind of bug especially if the program is in a totally happy
state.
Yes, some data is much too big to handle on screen (say a year long time
series with five data points per day 6:00/9/12/15/18:00). The most
elegant thing for that would be to have the plot scale nicely from the
smoothed full year view into the daily 'connect the dot' view with a
horizontal scrollbar; but that's for tomorrow. The example is mostly to
answer Andreas who wonders why users might not want the whole plot in
the visible area. I used to make the guppi window the size of 20
desktops and then slide the window back and forth to look at the shapes
of different days in the different seasons---what Havoc calls a broken
answer to a broken app.
The configurable chart area is *awesome*, much more intuitive than the
tree configuration system. This could grow to get a dynamic 'Add' area
which shows, as widgets, the appropriate elements from the "Add" menu as
each piece is selected in the configurable chart area; this could then
become the primary interface. We would have to offer the users their
familiar basics as well such as cut/copy/paste. Actually, this occurs to
me as something we want to do regarless; the drop down "Add" menu hides
from users the potential of the chart widget.
However, while the configurable chart area is very cool, it is also
equivalently *hard*, a complex paradigm to build and offer users. I
offer these two principles for that paradigm only to prod your thinking.
Principle: In a 'visual editor,' all elements present must remain
visible.
This has consequences for the widget. I would make the "charting
area" white to show the aspect ratio of the 'visible area'
designated on the worksheet. This might be done with an alpha
10% grey mask over all the non-charting area. You may need to
make the border around the visible area big enough to hold any
piece you want to permit to leave charts out of the 'visible
area' (say if you want to let users to have a 'scrap heap' on
the side).
I would also block the charts from becoming too small, say
smaller than makes the bottom right handle clearly identifiable
as a handle. (10px wide or some such).
I would prevent charts from "inverting" (in the worksheet, this
is done by changing handle when the user drags the mouse
diagonally back across the chart; since you have only one handle
in your widget, I am not sure what you want to do).
I would prevent charts from leaving the chart area or at least
from leaving too far *but* would keep them visible regardless.
You might want to prevent charts from moving more than 95% from
the center to force them to stay 'worksheet visible' or from
moving more than 110% percent from the center (i.e. not
worksheet visible but still 'Configure Chart' visible) according
to your desires *but* the user should still see the chart and be
able to drag it back if needs be. To answer Andreas, I could
imagine this would let us store alternative charts but only show
one on the page that gets printed. I'm not sure I would do that,
merely arguing that it's a reasonable idea.
Principle: make the common needs easy at the expense of the uncommon
ones.
Since you now have the infrastructure to be totally crazy, you
need to design the UI to help users do what they want. Right
now, this UI feels like it was designed to make *everything*
possible. That's fantastic. However, I suspect most users
wanting to re-arrange their charts want to do simple things like
flip charts from vertically stacked to horizontally, side by
side. The first thing I tried, before I realized what you were
letting me do, was to make the plot areas uneven by dragging the
"bar" between the charts to make one bigger and the other
smaller. So vertical <-> horizontal and uneven I suspect will be
popular and should therefore be easy to do. Perhaps users may
also frequently want to place one smaller chart on top of an
other. But mostly, I wouldn't expect them to get too much
crazier.
Starting small, perhaps you start by making the charts only
jointly resizable, not fully, independently re-sizable but
merely able to shuffle around and exchange space. That may be
more intuitive. You would then eventually have to add a special
"place chart on top" UI workflow and 'visual' look.
Again these ideas are merely offered to prod you to reset your thinking
from the coder's perspective to the user's perspective long enough to
design a UI as great as the code that you have already written.
Finally, since gnumeric is on the road to release you probably don't
have time to do much right now. If there is *any* way you can block the
charts from disappearing from user control in the view before the
release, I would encourage you to do that. The easiest I can imagine
would be to block charts from going more than 110% percent off the
'visible area' and yet make them still visible at that point.
--adrian
On Sun, 2007-10-28 at 16:11 -0600, Andreas J. Guelzow wrote:
On Sun, 2007-28-10 at 22:39 +0100, Emmanuel Pacaud wrote:
No. At least it's a precise point we can discuss.
Why would I want to be able to move the chart outside the visible area?
Perhaps someone might want 1/2 a chart.
[
Date Prev][
Date Next] [
Thread Prev][Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]