Adam,

Not sure if this is the try you're trying to bark up, but I've used a total
hack to do what I think you're describing:
 1) store lists of coordinate pairs in a pandas DataFrame
 2) use df.apply() to turn each list of coords in to a patch and add to an
axes object

I'm sure you know this, but for posterity's sake, I'll mention that you
*really* should only store primitives in pandas DataFrames. For that reason
alone, I would describe the method above as the death-throes of a failing
project trying to meet deadlines.

Perhaps a more robust way would be to store the coordinates in a "long"
format, i.e.,

shapeid, vertexid, x, y
1,1,0,0
1,2,1,1
1,3,2,2
2,1,10,10
2,2,11,11
3,3,12,12
...

And the group that DataFrame by `shapeid` and use `apply` on the pandas
GroupBy object to construct a patch and add it to an axes object.

Just a thought.


On Tue, Jan 7, 2014 at 12:29 PM, Adam Hughes <hughesada...@gmail.com> wrote:

> Sorry, quick followup.  I did find the gallery example to plot multiple
> patches together:
>
> http://matplotlib.org/examples/api/patch_collection.html
>
> That's excellent.  Now I guess my question is how best to generalize the
> process of turning my objects into patches.  I think I will just try to
> keep the geometry (ie line --> mpatch.Line) unless anyone has any better
> suggestions.
>
> Thanks!
>
>
> On Tue, Jan 7, 2014 at 3:08 PM, Adam Hughes <hughesada...@gmail.com>wrote:
>
>> Hi,
>>
>> I am working on a library for image analysis which stores particles as
>> indexed numpy arrays and provides functionality for managing the particles
>> beyond merely image masking or altering the arrays directly.  I've already
>> designed classes for many common shapes including Lines/Curves,
>> Circles/Ellipses, Polygons, Multi-shapes (eg 4 circles with variable
>> overlap).
>>
>> What I'd really LOVE to do would be able to generate a
>> matplotlib.Collection instance from these objects as generally as possible.
>>  Then, I'd be able to show data as a masked image, but also get a really
>> nice looking plot from the objects in their Collection representation.
>>
>> So my question really is in the implementation.  First, is there a
>> general collection object that could work with ANY shape, or am I better
>> off matching my shape to that collection?  For example:
>>
>>     line --> LineCollection       *vs.*    line --> GeneralCollection
>>     circle --> CircleCollection           circle ---> GeneralCollection
>>
>> And then, is the Collections plotting API flexible enough to mix all of
>> these types together?  Or would I have to settle for only being able to
>> plot a collection of any 1 shape type at at time?
>>
>> I will delve into the API further, but ascertaining this information
>> would really help me get started.
>>
>> Thanks
>>
>
>
>
> ------------------------------------------------------------------------------
> Rapidly troubleshoot problems before they affect your business. Most IT
> organizations don't have a clear picture of how application performance
> affects their revenue. With AppDynamics, you get 100% visibility into your
> Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics
> Pro!
> http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to