[Paraview] vtkTable and LineChart

pat marion pat.marion at kitware.com
Mon Nov 29 18:42:37 EST 2010


So in pqChartRepresentation::setDefaultPropertyValues() we have a pointer to
the vtkSMRepresentationProxy.  This object will have a proxy property named
"Input" which leads to a vtkSMSourceProxy pointer.  This will be the source
proxy for the vtk filter that is producing the table data.  Maybe we could
add a convention- if the source proxy has an information property named
something like "XAxisHint", then we'll use that to determine the default x
axis.  I'm not sure what to do with the "Time" and "arc_length" hard coded
values, maybe those would stay as-is.

Pat

On Mon, Nov 29, 2010 at 6:31 PM, pat marion <pat.marion at kitware.com> wrote:

> Take a look at pqChartRepresentation::setDefaultPropertyValues().  See
> where the x_array variable is assigned, and then the magic happens here:
>
>   if (!x_array.isEmpty())
>     {
>     vtkSMPropertyHelper(proxy, "XArrayName").Set(x_array.toAscii().data());
>     vtkSMPropertyHelper(proxy, "UseIndexForXAxis").Set(0);
>     }
>
> and then a little more magic a few lines later:
>
>       else if (!x_array.isNull() && (array == x_array))
>         {
>         // No point in plotting the series used as the x-array.
>         helper.SetStatus(array.toAscii().data(), 0);
>         }
>
>
> I totally agree with you that it would be nice if there was a way to make
> this choice happen by default under the right conditions.
>
> Pat
>
>
> On Mon, Nov 29, 2010 at 5:24 PM, Michael Jackson <
> mike.jackson at bluequartz.net> wrote:
>
>> Yes, I can see the data in ParaView after I mess around digging in the
>> "Display" tab, clicking some checkbox, taking guess about what needs to be
>> enabled/disabled..
>>  I was hoping my use-case would fall into the "Default" use case where the
>> first column represented the x-axis and subsequent columns were y-axis
>> values but I guess not this time. Yes, I agree that it does only take a few
>> clicks here and there but you first have to know _what_ to click which is
>> where the user experience is falling apart for me. I have to teach a bunch
>> of users to click here and there in order to show their data.
>>   Along those lines maybe I am not really understanding how a "Line Chart"
>> works. Maybe what I am really after is an "XY Scatter Plot" of my data?
>>   What would help me out would be what source file is the default value of
>> using the cell indices as the x-axis set? for my builds which I distribute
>> to my users maybe I can just set this to the other value "Use Data Array"
>> instead?
>>
>>
>> Thanks
>> ___________________________________________________________
>> Mike Jackson                      www.bluequartz.net
>> Principal Software Engineer       mike.jackson at bluequartz.net
>> BlueQuartz Software               Dayton, Ohio
>>
>>
>>
>> On Nov 29, 2010, at 5:15 PM, pat marion wrote:
>>
>>  That's correct, the data objects at the vtk level cannot influence how
>>> the chart will be displayed.  It all happens in the gui & servermanager
>>> level, at the proxy level.  Are you at least able to see your data in the XY
>>> Line Chart?  It only takes two clicks in the Display tab to assign the X
>>> axis.
>>>
>>> It would be convenient if there was some way for the data object to
>>> provide a hint to gui.  Maybe we could make a rule that if an array name
>>> ends with "xaxis_hint" or something, that could clue the gui to use it
>>> automatically.
>>>
>>> Pat
>>>
>>> On Mon, Nov 29, 2010 at 4:47 PM, Michael Jackson <
>>> mike.jackson at bluequartz.net> wrote:
>>> Thanks for more info.
>>>
>>>  I do in fact have "Time" for one of my plots so that is easy to achieve.
>>> I just had to correctly set the name of the column from "Time Values" to
>>> "Time" and that should work. The other plots probably are more difficult at
>>> this point. I have Stress/Strain data where I need the Stress on the x-axis
>>> and strain on the y-axis. I do not think I am understanding how to set some
>>> value on the vtkTable class that when finally passed over to the GUI layer
>>> will set the some arbitrary column as the x-axis. I thought the proxy stuff
>>> was all done on the GUI side of things? I guess I need just a bit more hand
>>> holding.
>>>
>>> ___________________________________________________________
>>> Mike Jackson                      www.bluequartz.net
>>> Principal Software Engineer       mike.jackson at bluequartz.net
>>> BlueQuartz Software               Dayton, Ohio
>>>
>>>
>>>
>>> On Nov 29, 2010, at 4:31 PM, Marcus D. Hanwell wrote:
>>>
>>> Sorry, yes, I was in VTK world. There are a few column names with
>>> special meanings to ParaView that are hard coded in the proxy. You can
>>> get at the chart object if you wish to manipulate it directly, but you
>>> should be able to achieve everything you need to through the proxies.
>>>
>>> Marcus
>>>
>>> On Mon, Nov 29, 2010 at 4:28 PM, pat marion <pat.marion at kitware.com>
>>> wrote:
>>> I think by default it will plot a line for each column in the table.  It
>>> will use the cell value as the Y value, and the row index as the X value.
>>> To change the behavior, you have to change two representation properties:
>>>
>>>
>>> rep.UseIndexForXAxis = 0
>>>
>>> rep.XArrayName = 'foo'
>>>
>>> This will plot all all the columns, except use the "foo" column as the X
>>> values.  That means the line for the "foo" column is still displayed, and
>>> it
>>> will be a diagonal line.
>>>
>>> I just looked, and Paraview has one cheat hard coded- if there is a
>>> column
>>> named "Time" or "arc_length" then it will be used automatically for the X
>>> axis.
>>>
>>> Pat
>>>
>>> On Mon, Nov 29, 2010 at 4:11 PM, Michael Jackson
>>> <mike.jackson at bluequartz.net> wrote:
>>>
>>> Thanks for the idea. I was trying to figure out the flow from reading the
>>> data into displaying the data hoping to reveal some sort of default or
>>> something. I was going to generate some fake CSV data and see how that
>>> reader does things hoping the CSV reader takes the first column as the
>>> x-axis.
>>> ___________________________________________________________
>>> Mike Jackson                      www.bluequartz.net
>>> Principal Software Engineer       mike.jackson at bluequartz.net
>>> BlueQuartz Software               Dayton, Ohio
>>>
>>>
>>>
>>> On Nov 29, 2010, at 4:08 PM, pat marion wrote:
>>>
>>> Hi Mike,
>>>
>>> I'm not up to speed with the current chart api so I can't answer your
>>> question... but maybe you could try doing it in the gui with python trace
>>> enabled, then translate the generated python code into c++ for your
>>> plugin?
>>>  Customizing the chart should be a matter of setting properties on the
>>> representation and view, the data object itself doesn't have much say.
>>>
>>> Pat
>>>
>>> On Mon, Nov 29, 2010 at 1:41 PM, Michael Jackson
>>> <mike.jackson at bluequartz.net> wrote:
>>> I have some XY data that I would like to plot in ParaView. I currently
>>> have a plugin that reads the data from our HDF5 file and into vtkTable
>>> objects. Along the lines of a "Line Chart 101" question how do I
>>> programmatically set the x-axis and y-axis columns?
>>>
>>> Thanks
>>> ___________________________________________________________
>>> Mike Jackson                      www.bluequartz.net
>>> Principal Software Engineer       mike.jackson at bluequartz.net
>>> BlueQuartz Software               Dayton, Ohio
>>>
>>>
>>>
>>> _______________________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Please keep messages on-topic and check the ParaView Wiki at:
>>> http://paraview.org/Wiki/ParaView
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.paraview.org/mailman/listinfo/paraview
>>>
>>>
>>> _______________________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Please keep messages on-topic and check the ParaView Wiki at:
>>> http://paraview.org/Wiki/ParaView
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.paraview.org/mailman/listinfo/paraview
>>>
>>>
>>> _______________________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Please keep messages on-topic and check the ParaView Wiki at:
>>> http://paraview.org/Wiki/ParaView
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.paraview.org/mailman/listinfo/paraview
>>>
>>>
>>>
>>> _______________________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Please keep messages on-topic and check the ParaView Wiki at:
>>> http://paraview.org/Wiki/ParaView
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.paraview.org/mailman/listinfo/paraview
>>>
>>>
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Please keep messages on-topic and check the ParaView Wiki at:
>> http://paraview.org/Wiki/ParaView
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.paraview.org/mailman/listinfo/paraview
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20101129/84d3f4bf/attachment.htm>


More information about the ParaView mailing list