Improved dashing for black and white plots?

In my humble defense, the fact that this is barely

    > mentioned in the pylab tutorial, not at all in the plot
    > docstring, and also not in Perry's tutorial, may have
    > something to do with my not knowing about it :wink:

You don't need any defense -- it's no secret that mpl is
under-documented. If you know how to look, the information is usually
there, but the trick is knowing how to look

In [3]: l, = plot([1,2,3])

In [4]: setp(l)
    alpha: float
    animated: [True | False]
    antialiased or aa: [True | False]
    clip_box: a matplotlib.transform.Bbox instance
    clip_on: [True | False]
    color or c: any matplotlib color - see help(colors)
    dash_capstyle: ['butt' | 'round' | 'projecting']
    dash_joinstyle: ['miter' | 'round' | 'bevel']
    dashes: sequence of on/off ink in points
    data: (array xdata, array ydata)
    figure: a matplotlib.figure.Figure instance
    label: any string
    linestyle or ls: [ '-' | '--' | '-.' | ':' | 'steps' | 'None' ]
    linewidth or lw: float value in points
    lod: [True | False]
    marker: [ '+' | ',' | '.' | '1' | '2' | '3' | '4' | '<' | '>' |
    'D' | 'H' | '^' | '_' | 'd' | 'h' | 'o' | 'p' | 's' | 'v' | 'x' |
    '|' ]
    markeredgecolor or mec: any matplotlib color - see help(colors)
    markeredgewidth or mew: float value in points
    markerfacecolor or mfc: any matplotlib color - see help(colors)
    markersize or ms: float
    solid_capstyle: ['butt' | 'round' | 'projecting']
    solid_joinstyle: ['miter' | 'round' | 'bevel']
    transform: a matplotlib.transform transformation instance
    visible: [True | False]
    xdata: array
    ydata: array
    zorder: any number

This reminds me -- of late I've been wishing for a grep-like feature
in ipython

  In [2]: setp(l) | grep dash

to see just the output of setp that matches "dash". In your case, you
would have seen

    dash_capstyle: ['butt' | 'round' | 'projecting']
    dash_joinstyle: ['miter' | 'round' | 'bevel']
    dashes: sequence of on/off ink in points

suggesting that you can not only configure the dash style, but the
dash cap and join style as well :slight_smile:

Of course, I could add this functionality to setp but it would be more
generally useful to have it in ipython.

The use case I had in mind today was in history, when I had a bunch of
commands I wanted to grep through

  In [1000]: history | grep xxx

JDH

You don't need any defense -- it's no secret that mpl is
under-documented. If you know how to look, the information is usually
there, but the trick is knowing how to look

In [3]: l, = plot([1,2,3])

In [4]: setp(l)

Ah, thanks for that reminder! That's useful to know/re-know.

This reminds me -- of late I've been wishing for a grep-like feature
in ipython

  In [2]: setp(l) | grep dash

to see just the output of setp that matches "dash". In your case, you
would have seen

    dash_capstyle: ['butt' | 'round' | 'projecting']
    dash_joinstyle: ['miter' | 'round' | 'bevel']
    dashes: sequence of on/off ink in points

suggesting that you can not only configure the dash style, but the
dash cap and join style as well :slight_smile:

Of course, I could add this functionality to setp but it would be more
generally useful to have it in ipython.

The use case I had in mind today was in history, when I had a bunch of
commands I wanted to grep through

  In [1000]: history | grep xxx

Yes, I also have wanted something like this. The problem is that many
utilities don't return anything, they just print to stdout (setp is
one such tool). Which means that we'd need to capture all of stdout
and have it available for further processing always, in a non-blocking
way (so typing 'ls' doesn't make you wait forever before printing).
This is really pushing ipython far into the shell territory, albeit in
a manner that would be very useful. I'll forward this to the
ipython-dev list, to see if Ville and Walter (the brains behind the
fancy ipipe) want to pick this ball up and run with it. I'm now
pretty much only working with Brian on the new branch.

Incidentally, this would bring ipython much closer to Microsoft's
Monad shell model:

    A guided tour of the Microsoft Command Shell | Ars Technica

Ever since that review came out, I've thought that python/ipython
already has 90% of those tools, save a proper (but better) pipe-like
model for chaining object results. With a bit of time investment,
this could certainly be done.

Cheers,

f

···

On 7/11/06, John Hunter <jdhunter@...4...> wrote: