|
From: Benjamin R. <ben...@ou...> - 2010-10-25 21:36:33
|
On Mon, Oct 25, 2010 at 11:56 AM, Lorenzo Isella <lor...@gm...>wrote: > Dear All, > I am aware that this question has already been asked several times on > the mailing list, see e.g. > > http://bit.ly/aPzQTA > > However, in the following snippet, nothing I tried has been able to > reduce the amount of white space around the figure (including toying > around with > > ax = plt.axes([0.0, 0.0, 1.0, 1.0]) > ) > Of course, one can always resort to pdfcrop, but I believe there must be > a better solution to resize the margins from matplotlib. > Please see the snippet at the end of the email. > Every suggestion is welcome. > Cheers > > Lorenzo > > > > ##############################################################################3 > > #!/usr/bin/env python > """ > See pcolor_demo2 for a much faster way of generating pcolor plots > """ > from __future__ import division > from pylab import * > > from matplotlib import rc > > > def func3(x,y): > return (1- x/2 + x**5 + y**3)*exp(-x**2-y**2) > > > def func4(x,y): > theta=arcsin(y) > return cos(theta) > > def func5(x,y): > > return abs(sin(y)) > > def func6(x,y): > > return abs(cos(y)) > > > # make these smaller to increase the resolution > dx, dy = 0.0025, 0.0025 > > # x = arange(-1.0, 1.0, dx) > # y = arange(-1.0, 1.0, dy) > > x = arange(-pi, pi, dx) > y = arange(-pi, pi, dy) > > > print("x is, " ) > > print (x) > > X,Y = meshgrid(x, y) > > Z = func6(X, Y) > > # print "Z is, ", Z > > > ini=pi/2.+0.5 > > > > > fig = plt.figure(figsize=(6,6)) > > ax = fig.add_subplot(111) > > ax.axis('off') > > > figtext(.55, .8,r'${\bf J}^\perp$', fontdict=None,fontsize=30) > > > im = imshow(Z,cmap=cm.jet, extent=(-pi, pi, -pi, pi)) > im.set_interpolation('bilinear') > > im.set_clip_path(Circle((0,0),pi/2., transform=ax.transData)) > > > # ax = plt.axes([0.0, 0.0, 1.0, 1.0]) # leaves no white space around the > axes > > > annotate("", xy=(-pi/2., 0), xytext=(-ini, 0), arrowprops=dict(fc="g")) > annotate("", xy=(-pi/2., .2), xytext=(-ini, .2), arrowprops=dict(fc="g")) > annotate("", xy=(-pi/2., -.2), xytext=(-ini, -.2), arrowprops=dict(fc="g")) > > annotate("", xy=(-pi/2., .4), xytext=(-ini, .4), arrowprops=dict(fc="g")) > annotate("", xy=(-pi/2., -.4), xytext=(-ini, -.4), arrowprops=dict(fc="g")) > > > annotate("", xy=(-pi/2., .6), xytext=(-ini, .6), arrowprops=dict(fc="g")) > annotate("", xy=(-pi/2., -.6), xytext=(-ini, -.6), arrowprops=dict(fc="g")) > annotate("", xy=(-pi/2., .8), xytext=(-ini, .8), arrowprops=dict(fc="g")) > annotate("", xy=(-pi/2., -.8), xytext=(-ini, -.8), arrowprops=dict(fc="g")) > > > annotate("", xy=(-pi/2., 1), xytext=(-ini, 1), arrowprops=dict(fc="g")) > annotate("", xy=(-pi/2., -1), xytext=(-ini, -1), arrowprops=dict(fc="g")) > > annotate("", xy=(-pi/2., 1.2), xytext=(-ini, 1.2), arrowprops=dict(fc="g")) > annotate("", xy=(-pi/2., -1.2), xytext=(-ini, -1.2), > arrowprops=dict(fc="g")) > > annotate("", xy=(-pi/2., 1.4), xytext=(-ini, 1.4), arrowprops=dict(fc="g")) > annotate("", xy=(-pi/2., -1.4), xytext=(-ini, -1.4), > arrowprops=dict(fc="g")) > > > > annotate("", xy=(pi/2., 0), xytext=(ini, 0), arrowprops=dict(fc="g")) > annotate("", xy=(pi/2., .2), xytext=(ini, .2), arrowprops=dict(fc="g")) > annotate("", xy=(pi/2., -.2), xytext=(ini, -.2), arrowprops=dict(fc="g")) > > > annotate("", xy=(pi/2., .4), xytext=(ini, .4), arrowprops=dict(fc="g")) > annotate("", xy=(pi/2., -.4), xytext=(ini, -.4), arrowprops=dict(fc="g")) > > > annotate("", xy=(pi/2., .6), xytext=(ini, .6), arrowprops=dict(fc="g")) > annotate("", xy=(pi/2., -.6), xytext=(ini, -.6), arrowprops=dict(fc="g")) > annotate("", xy=(pi/2., .8), xytext=(ini, .8), arrowprops=dict(fc="g")) > annotate("", xy=(pi/2., -.8), xytext=(ini, -.8), arrowprops=dict(fc="g")) > > > annotate("", xy=(pi/2., 1), xytext=(ini, 1), arrowprops=dict(fc="g")) > annotate("", xy=(pi/2., -1), xytext=(ini, -1), arrowprops=dict(fc="g")) > > annotate("", xy=(pi/2., 1.2), xytext=(ini, 1.2), arrowprops=dict(fc="g")) > annotate("", xy=(pi/2., -1.2), xytext=(ini, -1.2), arrowprops=dict(fc="g")) > > annotate("", xy=(pi/2., 1.4), xytext=(ini, 1.4), arrowprops=dict(fc="g")) > annotate("", xy=(pi/2., -1.4), xytext=(ini, -1.4), arrowprops=dict(fc="g")) > > > # annotate("", xy=( -1.4, -pi/2), xytext=(-1.4,ini), > arrowprops=dict(fc="g")) > > > annotate("", xy=(0., ini+1.), xytext=(0, -ini), > arrowprops=dict(fc="black")) > > > > ax.annotate('', xy=(-.3, 2.4), xycoords='data', > xytext=(-.4, 2.2), # textcoords='offset points', > arrowprops=dict(arrowstyle="->", > > connectionstyle="angle3,angleA=0,angleB=-10"), > ) > > > > savefig("first-plot.pdf") > > clf() > > Lorenzo, Have you tried this: savefig("first-plot.pdf", bbox_inches='tight') It might not work properly if you have annotations outside the plot area, but give it a shot to see if that works for you. If not, there are some other "tricks" that might work. Ben Root |