Re: Customize Chart needs love before release

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

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

        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

        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
        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.


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]