[vtk-developers] Charts in VTK and ParaView

Eric E. Monson emonson at cs.duke.edu
Wed Mar 24 12:08:23 EDT 2010

Hey guys,

A lot of the chart stuff is working well now, but I'm going to send problems in as I discover them since I can't always spend a big block of time testing this out. So far:

1. The default column widths in the Line Series list view of the Display tab are quite narrow and don't fill the width of the list view. (Looking at 3.6.2 binary, it seems this was the same then, too, so I guess it's sort of a separate issue.)

2. The View Settings for the Chart Legend don't work. Unchecking Show doesn't hide the legend and changing the Location combo box doesn't activate the Apply button or do anything to the legend position.

3. When a plot first comes up, the X-axis range over which the data is plotted takes the size of the legend into account. If you change which line series are plotted in such a way that the line series names are now shorter (so the legend now takes up less space along the x-axis), the data doesn't automatically fill the new available space (even when you change which block is plotted), it always remembers the original space allowed. Since it is automatically using the space in such a way to not overlap the legend at the beginning, it looks strange that it never updates itself with the new information about how much space the legend is now taking up.

4. I can't get the Chart Axes combo box on the Display tab to do anything to the plot.

5. The legend doesn't show any symbols, only the line style used for that data series.

6. The left axis title disappears right after I set it. I see it show up for a split-second after I _first_ hit Ok on the View Settings, but then I can't tell what happens and I can't get it to show up again. •• Okay, it looks like this is part of suppressing the Y axis label if more than one line series are being plotted. The system doesn't allow you to override the Y axis label (either shown or suppressed) through the View Settings panel. You can override the X axis label through the dialog, but not the Y. If only one line series is plotted, the correct label is shown and can be changed from the list view. The problem is that if you have something common among multiple line series, like all of the values are concentrations, you can't label the Y-axis with "Concentration".

7. The old charting system didn't insist on including 0 in the automatic axis ranges. I think I liked the old way better, or would at least like an option to turn this off in the View Settings. If I have a value that stays very high over time, I don't always want to see the level compared to zero, I want to see the variations that are there without having to do a bunch of zooming. This is just my preference -- people can argue about it if they disagree.

Okay, time to move on to some other things today. I'll let you know if I run across any other issues. Overall it's looking good.


On Mar 23, 2010, at 10:25 AM, pat marion wrote:

> Hi Eric,
> I just pushed some fixes to the paraview proxy classes that manage the charts.  If you have some time this week could you try banging on the charts in paraview to make sure they work for what you're trying to do.  I'm mostly interested in knowing about any functionality/behavior changes from the previous charts.
> Some of the fixes include- visibility icon in pipeline browser works, state is remembered, adding sources to the chart doesn't clear what was already in the chart.
> Pat
> On Thu, Mar 11, 2010 at 11:50 AM, Marcus D. Hanwell <marcus.hanwell at kitware.com> wrote:
> On Tuesday 09 March 2010 14:46:19 Eric E. Monson wrote:
> > Hey Marcus,
> >
> > I'll attach my little python script that I've been using to try out the
> > Charts stuff, but I'm not sure that it will be helpful to you because,
> > even though I wrote it by translating TestLinePlot into Python, it uses an
> > interator and a render window and isn't written as a python "test" (which
> > I don't really know how to do...).
> I would be happy to work on converting it. It will be my first Python test, but
> I think it would be good to ensure the Python bindings the the new charts is
> working everywhere. I will see about getting something added soon.
> >
> > I'll bring up two issues I've run into, and then I promise I'll break it
> > off into another thread in the future. :)
> The feedback is great, sorry about the delay in getting back to you.
> >
> > 1. (I noticed this in ParaView, too.) On my machine CIRCLE marker style is
> > drawn as a solid square rather than a circle. It looks like since you're
> > using painter->DrawPoints(f,n) for drawing circles in vtkPlotLine, you
> > must be relying on OpenGL vertices being circles? On my graphics card they
> > get rendered as squares... Do you think it would be too confusing to call
> > this one something else (like point or vertex) and make the circle marker
> > paint option call DrawEllipse()?
> I was thinking of doing this. I just got a Windows test system set up, with a
> much less fancy graphics card in it and am seeing the same issue. I could may
> be go with points and then draw ellipses (would be the slowest of the shapes).
> I may also looking into rendering the shape once, and then drawing point
> sprites or textured quads. That would be much more efficient than the current
> approach.
> >
> > 2. It would be kind of nice to be able to control the width of the pen used
> > to draw the markers, as well as the marker size (and it doesn't look like
> > this would be too hard to expose).
> No, I would just need to add an extra field in the dialog. I will see about
> getting this in, but I am currently working through a list of bugs that must
> be fixed before we make the next release... You are right that the API is
> already there.
> >
> > 3. (Sorry if this is ignorant since I've only looked at the code for a
> > little while now) Are you sort of straddling two charting models right
> > now? When I look at something like vtkPlotLine, it looks like a
> > traditional "plot one hard coded shape for each point" model. When I look
> > at vtkMark and vtkDataElement (as used in TestMarks.cxx) it looks like
> > more of a Protovis type model (which I've only glanced at and not really
> > used)... So, I guess I'm just curious whether you're still playing with
> > which type of model to support, or might they both exist in the new API as
> > it solidifies? (Or, maybe these things aren't as much two separate ways of
> > working as I'm imagining.)
> You are very astute. I see the charts as becoming a simpler, but probably less
> configurable, API on top of the marks. The mark API is still quite new, and
> will likely not make it into the next VTK release. I do hope to have the
> charts using the marks API to take care of the rendering, but I think that
> both APIs have a place in VTK.
> I would certainly welcome your thoughts if you have a chance to take a look at
> it. We are working on the marks API with the Protoviz developers and Sandia
> (TITAN), and that API is still in flux, we need to ensure things still scale
> and balance the use of things like lambda functions with existing VTK
> conventions.
> Thanks,
> Marcus
> _______________________________________________
> Powered by www.kitware.com
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtk-developers

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20100324/f508a155/attachment.html>

More information about the vtk-developers mailing list