SourceForge logo
SourceForge logo
Menu

matplotlib-devel

From: Arun P. <ape...@lb...> - 2014年02月05日 20:49:23
Hi
Hope this is the right place to post a request for enhancement.
I often create a bunch of relatively basic plots using matplotlib and
the commands to set the labels and limits take up more space than the
actual plotting commands (figure, plot, show), so I was wondering if
there is a shorter way of doing this (I couldn't find one) and if not,
if a shortcut notation could be added.
Here are some code lines I use at the moment:
3d plot:
ax.set_xlabel('Time [$\mu$s]')
ax.set_xlim3d(-0.2, 0.9)
ax.set_ylabel('Bias [V]')
ax.set_ylim3d(-100, 100)
ax.set_zlabel('Voltage[V]')
ax.set_zlim3d(-0.3, 0.4)
2d plot:
plt.xlabel('Time [$\mu$s]')
plt.ylabel('Voltage [V]')
plt.xlim(0, 100)
plt.ylim(0, 50)
proposed syntax:
# Z being optional
plt.labels(X='Time [$\mu$s]', Y='Bias [V]', Z='Voltage[V]')
plt.limits(X=[-0.2, 0.9], Y=[-100,100], Z=[-0.3, 0.4])
label could also have a **kwargs that would be handed on to all
[xyz]label, in case one needs to set fontsize for all labels.
label could also have an optional title=''.
limits could test for 2d or 3d plots and call the correct functions
automatically.
Arun
From: Benjamin R. <ben...@ou...> - 2014年02月05日 21:47:07
IIRC, you can use plt.setp() for this purpose:
http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.setp
Essentially, anything that would come after the "set_" part of an object's
method can be a keyword. So, I think this would work:
plt.setp(ax, xlim=[-0.2, 0.9], ylim=[-100,100], zlim=[-0.3, 0.4])
plt.setp(ax, xlabel='Time [$\mu$s]', ylabel='Bias [V]', zlabel='Voltage[V]')
Note, you no longer need to say "xlim3d" and the likes, it is just "xlim",
"ylim" and "zlim" (as of v1.1, IIRC).
Again, completely untested, and off the top of my head.
Cheers!
Ben Root
On Wed, Feb 5, 2014 at 3:49 PM, Arun Persaud <ape...@lb...> wrote:
> Hi
>
> Hope this is the right place to post a request for enhancement.
>
> I often create a bunch of relatively basic plots using matplotlib and
> the commands to set the labels and limits take up more space than the
> actual plotting commands (figure, plot, show), so I was wondering if
> there is a shorter way of doing this (I couldn't find one) and if not,
> if a shortcut notation could be added.
>
> Here are some code lines I use at the moment:
>
> 3d plot:
>
> ax.set_xlabel('Time [$\mu$s]')
> ax.set_xlim3d(-0.2, 0.9)
> ax.set_ylabel('Bias [V]')
> ax.set_ylim3d(-100, 100)
> ax.set_zlabel('Voltage[V]')
> ax.set_zlim3d(-0.3, 0.4)
>
> 2d plot:
>
> plt.xlabel('Time [$\mu$s]')
> plt.ylabel('Voltage [V]')
> plt.xlim(0, 100)
> plt.ylim(0, 50)
>
>
>
> proposed syntax:
>
> # Z being optional
> plt.labels(X='Time [$\mu$s]', Y='Bias [V]', Z='Voltage[V]')
> plt.limits(X=[-0.2, 0.9], Y=[-100,100], Z=[-0.3, 0.4])
>
>
>
> label could also have a **kwargs that would be handed on to all
> [xyz]label, in case one needs to set fontsize for all labels.
>
> label could also have an optional title=''.
>
> limits could test for 2d or 3d plots and call the correct functions
> automatically.
>
> Arun
>
>
> ------------------------------------------------------------------------------
> Managing the Performance of Cloud-Based Applications
> Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
> Read the Whitepaper.
>
> http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clktrk
> _______________________________________________
> Matplotlib-devel mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
>
From: Joe K. <jki...@ge...> - 2014年02月05日 23:08:10
On Wed, Feb 5, 2014 at 3:46 PM, Benjamin Root <ben...@ou...> wrote:
> IIRC, you can use plt.setp() for this purpose:
> http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.setp
>
> Essentially, anything that would come after the "set_" part of an object's
> method can be a keyword. So, I think this would work:
> plt.setp(ax, xlim=[-0.2, 0.9], ylim=[-100,100], zlim=[-0.3, 0.4])
> plt.setp(ax, xlabel='Time [$\mu$s]', ylabel='Bias [V]',
> zlabel='Voltage[V]')
>
<snip>
Just to elaborate on what Ben said, all matplotlib artists have a "set"
method. E.g.:
 ax.set(xlim=[min, max], ylim=[min, max], xlabel='blah')
"plt.setp" basically just calls "set", but it will also operate on
sequences of artists. Therefore you can do things like:
fig, axes = plt.subplots(nrows=2, ncols=2)
plt.setp(axes.flat, aspect=2, ...)
Some people prefer the "Tk-style" set method to using "setp" if you're
operating on a single artist.
Keep in mind that it also works for other artists, not just axes. At any
rate, "setp" and the "set" method are certainly handy to know about!
Cheers,
-Joe
From: Arun P. <ape...@lb...> - 2014年02月06日 21:42:59
Hi
> Just to elaborate on what Ben said, all matplotlib artists have a "set"
> method. E.g.:
> 
> ax.set(xlim=[min, max], ylim=[min, max], xlabel='blah')
> 
> "plt.setp" basically just calls "set", but it will also operate on
> sequences of artists. Therefore you can do things like:
great! exactly what I was looking for :)
Thanks
Arun
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.
Thanks for helping keep SourceForge clean.
X





Briefly describe the problem (required):
Upload screenshot of ad (required):
Select a file, or drag & drop file here.
Screenshot instructions:

Click URL instructions:
Right-click on the ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)

More information about our ad policies

Ad destination/click URL:

AltStyle によって変換されたページ (->オリジナル) /