On Mon, Jul 13, 2009 at 4:56 PM, Uri Laserson<laser...@mit.edu> wrote:
> Hi everyone,
>
> I am trying to create some brand new types of plots for a unique data set
> that I have.  My question basically boils down to getting some advice on
> what is the proper way to set up a function that will act like one of the
> matplotlib pyplot functions (e.g., have all the same behavior regarding
> interactive stuff, resizing, etc.).

Most of the pyplot functions are wrapper around the method in the Axes class.
For example, pyplot.plot is basically

 ax = gca()
 ax.plot()
 draw_if_interactive()

And the basic role of the plotting method in the Axes class is to
create appropriate
matplotlib artists and add them to the axes. If your plot can be
created with matplotlib's currently existing artists, you can simply
reuse them. Otherwise, you need to create your own artist, but this
requires some understandings of internals.

For example,

def ax_my_plot(ax, *kl, **ka):
    # create artists and add them to ax

def my_plot(*kl, **ka):
    ax = gca()
    ax_my_plot(ax, *kl, **ka)
    draw_if_interactive()

"my_plot" will behave similar to other pyplot command.

>
> I have been looking through some of the code for the major functions like
> plot, but have been having trouble parsing it.  I think that some of this is
> obfuscated in the complexity of the functions.
>
> At some level, I would also like to be able to draw on the canvas in a very
> explicit way, like in Processing (http://processing.org/); what is the best
> way to approach this?

You can draw something in the canvas coordinate. But what you can do
is limited by the matplotlib's backend api, which is more like a
vector drawing tool. So things like a pixel manipulation is not
suitable.

Regards,

-JJ

>
> Another thing that could be really nice is to have some boilerplate
> framework that someone could start with to quickly write functions that
> integrate well into the rest of matplotlib.
>
> (And sorry if I am sounding critical of the package.  I actually love it,
> and have been quite the MPL evangelist in my little section of Boston.)
>
> Any suggestions are welcome.
>
> Uri
>
> --
> Uri Laserson
> PhD Candidate, Biomedical Engineering
> Harvard Medical School (Genetics)
> Massachusetts Institute of Technology (Mathematics)
> phone +1 917 742 8019
> laser...@mit.edu
>
> ------------------------------------------------------------------------------
> Enter the BlackBerry Developer Challenge
> This is your chance to win up to $100,000 in prizes! For a limited time,
> vendors submitting new applications to BlackBerry App World(TM) will have
> the opportunity to enter the BlackBerry Developer Challenge. See full prize
> details at: http://p.sf.net/sfu/Challenge
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>

------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize  
details at: http://p.sf.net/sfu/Challenge
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to