SourceForge logo
SourceForge logo
Menu

matplotlib-users — Discussion related to using matplotlib

You can subscribe to this list here.

2003 Jan
Feb
Mar
Apr
May
(3)
Jun
Jul
Aug
(12)
Sep
(12)
Oct
(56)
Nov
(65)
Dec
(37)
2004 Jan
(59)
Feb
(78)
Mar
(153)
Apr
(205)
May
(184)
Jun
(123)
Jul
(171)
Aug
(156)
Sep
(190)
Oct
(120)
Nov
(154)
Dec
(223)
2005 Jan
(184)
Feb
(267)
Mar
(214)
Apr
(286)
May
(320)
Jun
(299)
Jul
(348)
Aug
(283)
Sep
(355)
Oct
(293)
Nov
(232)
Dec
(203)
2006 Jan
(352)
Feb
(358)
Mar
(403)
Apr
(313)
May
(165)
Jun
(281)
Jul
(316)
Aug
(228)
Sep
(279)
Oct
(243)
Nov
(315)
Dec
(345)
2007 Jan
(260)
Feb
(323)
Mar
(340)
Apr
(319)
May
(290)
Jun
(296)
Jul
(221)
Aug
(292)
Sep
(242)
Oct
(248)
Nov
(242)
Dec
(332)
2008 Jan
(312)
Feb
(359)
Mar
(454)
Apr
(287)
May
(340)
Jun
(450)
Jul
(403)
Aug
(324)
Sep
(349)
Oct
(385)
Nov
(363)
Dec
(437)
2009 Jan
(500)
Feb
(301)
Mar
(409)
Apr
(486)
May
(545)
Jun
(391)
Jul
(518)
Aug
(497)
Sep
(492)
Oct
(429)
Nov
(357)
Dec
(310)
2010 Jan
(371)
Feb
(657)
Mar
(519)
Apr
(432)
May
(312)
Jun
(416)
Jul
(477)
Aug
(386)
Sep
(419)
Oct
(435)
Nov
(320)
Dec
(202)
2011 Jan
(321)
Feb
(413)
Mar
(299)
Apr
(215)
May
(284)
Jun
(203)
Jul
(207)
Aug
(314)
Sep
(321)
Oct
(259)
Nov
(347)
Dec
(209)
2012 Jan
(322)
Feb
(414)
Mar
(377)
Apr
(179)
May
(173)
Jun
(234)
Jul
(295)
Aug
(239)
Sep
(276)
Oct
(355)
Nov
(144)
Dec
(108)
2013 Jan
(170)
Feb
(89)
Mar
(204)
Apr
(133)
May
(142)
Jun
(89)
Jul
(160)
Aug
(180)
Sep
(69)
Oct
(136)
Nov
(83)
Dec
(32)
2014 Jan
(71)
Feb
(90)
Mar
(161)
Apr
(117)
May
(78)
Jun
(94)
Jul
(60)
Aug
(83)
Sep
(102)
Oct
(132)
Nov
(154)
Dec
(96)
2015 Jan
(45)
Feb
(138)
Mar
(176)
Apr
(132)
May
(119)
Jun
(124)
Jul
(77)
Aug
(31)
Sep
(34)
Oct
(22)
Nov
(23)
Dec
(9)
2016 Jan
(26)
Feb
(17)
Mar
(10)
Apr
(8)
May
(4)
Jun
(8)
Jul
(6)
Aug
(5)
Sep
(9)
Oct
(4)
Nov
Dec
2017 Jan
(5)
Feb
(7)
Mar
(1)
Apr
(5)
May
Jun
(3)
Jul
(6)
Aug
(1)
Sep
Oct
(2)
Nov
(1)
Dec
2018 Jan
Feb
Mar
Apr
(1)
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
2020 Jan
Feb
Mar
Apr
May
(1)
Jun
Jul
Aug
Sep
Oct
Nov
Dec
2025 Jan
(1)
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
S M T W T F S





1
(2)
2
(1)
3
(17)
4
(9)
5
(2)
6
(5)
7
(8)
8
(11)
9
(6)
10
(6)
11
(21)
12
(21)
13
(17)
14
(25)
15
(15)
16
(2)
17
18
(9)
19
(22)
20
(25)
21
(31)
22
(19)
23
(2)
24
(5)
25
(19)
26
(10)
27
(13)
28
(14)
29
(20)
30
(5)
31
(9)






Showing 6 results of 6

From: Dominik S. <do...@it...> - 2010年01月09日 21:28:04
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
When using white over back color scheme the legend() is unreadable, with
apparently hard-coded white legend background - or is there a way to set
it in the rc file?
Dominik
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
iEYEARECAAYFAktI9NEACgkQ/EBMh9bUuzKvHgCg7HZbBpA+vMdLcCzfVvZcyARq
JlsAnRGSuYMa0GXVnIG6M3RHrXGSOtQL
=FlrY
-----END PGP SIGNATURE-----
From: Jae-Joon L. <lee...@gm...> - 2010年01月09日 14:26:57
On Sat, Jan 9, 2010 at 8:20 AM, Eric Emsellem <eem...@es...> wrote:
> Hi
> thanks A LOT for taking the time to test this and for the suggestions.
>
> Yes, pcolormesh is needed (or at least I think) because in the "real"
> example (the figures I am trying to make) the pixels are rotated meaning
> that these are polygons which are not aligned with the axes. Imshow
> cannot do that as far as I can tell because it shows a rectangular grid
> (masked or not) aligned with the axis.
>
imshow in the current release does not support rotation.
However, imshow in the svn DOES support rotation (or any affine
transform), but for ps backend only. Here is a relevant thread. So
take a look if you're interested.
http://old.nabble.com/imshow-without-resampling-in-the-ps-backend.-tt26805182.html#a26805182
>
> Never used rasterization before...
> (and thanks for pointing out the mistake on map3, this came after
> adapting the script for this post). I guess this means you transform it
> into a resolution dependent figure. I can try it but I am afraid this
> will look quite bad.
>
Yes, but only images. Other artists (lines, texts, etc.) will be in
the vector format.
As a matter of fact, images in matplotlib are always rasterized
internally (only exception is the ps backend in the svn). So, the
result will not be much different. Also, you can increase the dpi of
the output if you think output quality is poor.
Regards,
-JJ
From: Eric E. <eem...@es...> - 2010年01月09日 13:23:07
Thinking about it: when matplotlib transfer the plot to ghostscript, is
there a parameter in the call for "gs" which limits the memory usage???
It seems that this is discussed in some posts about gs
Eric
On 09/01/10 04:25, Jae-Joon Lee wrote:
> I can reproduce this error with the current svn.
> 
> I doubt if this is a matplotlib issue, because it works fine if the
> number of axes is small.
> To me, it seems as some memory error in the ghostscript, but my quick
> googling did not show any relevant information.
> So, I hope some postscript expert take a look at the issue
From: Eric E. <eem...@es...> - 2010年01月09日 13:19:04
Hi
thanks A LOT for taking the time to test this and for the suggestions.
Yes, pcolormesh is needed (or at least I think) because in the "real"
example (the figures I am trying to make) the pixels are rotated meaning
that these are polygons which are not aligned with the axes. Imshow
cannot do that as far as I can tell because it shows a rectangular grid
(masked or not) aligned with the axis.
It seems indeed linked with the number of plots/memory. I have tested
this now and looked for when it crashes, Limiting the number of rows to
1, 2 , 3 etc. With 3 rows (9 plots) it works. But it crashes when I
include 4 rows. Looking at a "top" and memory usage, it is clearly a pb
with ghostscript when it takes over to transform it into the eps. Here
is the line from the "top" when it crashes:
 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
 5980 emsellem 20 0 167m 88m 4352 R 100 2.3 0:54.45 gs
When gs go over ~170m, it crashes. Not clue why. I have ample memory
left (2Gb RAM, 2Gb Swap) and no pb of disk space.
As for the workarounds: yes I did a pdf2ps already for one urgent figure
I had to get. I just hoped that I wouldn't have to do that for all my
figures.
Never used rasterization before...
(and thanks for pointing out the mistake on map3, this came after
adapting the script for this post). I guess this means you transform it
into a resolution dependent figure. I can try it but I am afraid this
will look quite bad.
cheers
Eric
On 09/01/10 04:25, Jae-Joon Lee wrote:
> I can reproduce this error with the current svn.
> 
> I doubt if this is a matplotlib issue, because it works fine if the
> number of axes is small.
> To me, it seems as some memory error in the ghostscript, but my quick
> googling did not show any relevant information.
> So, I hope some postscript expert take a look at the issue.
> 
> However, note that pcolormesh in backends other than agg is extremely
> inefficient, and I strongly discourage its use in other backends.
> Your current example could be much efficient if you simply can use
> imshow. Do you have to use pcolormesh? Your current example seems to
> be easily convertible to imshow, but you original example may not.
> 
> In case the use of pcolormesh is not avoidable, I can think of two workarounds.
> 
> 1) save as pdf first then convert to eps. Saving as pdf will take as
> much time as saving as ps.
> 
> 2) Save as eps but rasterize the pcolormesh plots. This is my choice
> and saving time is also not very long. As a matter of fact, whenever
> pcolormesh is used, I strongly recommend to consider rasterizing it.
> 
> For your current script, you may add something like below at the end
> of your for-loop.
> 
> map1.set_zorder(0.5)
> map2.set_zorder(0.5)
> map3.set_zorder(0.5)
> ax1.set_rasterization_zorder(0.6)
> ax2.set_rasterization_zorder(0.6)
> ax3.set_rasterization_zorder(0.6)
> 
> This code needs to be inside the for-loop so that all the pcolormesh
> plots get rasterized.
> Also, note that, in your current script, the third pcolormesh plot is
> assigned to "map2", instead of "map3", so you need to fix this first.
-- 
=================================================================
Eric Emsellem European Southern Observatory
 Karl-Schwarzschild Str. 2
e-mail: eem...@es... 85748 Garching bei Muenchen
tel: +49 (0)89 3200 6914 Germany
fax: +49 (0)89 3200 6480
=================================================================
From: Jae-Joon L. <lee...@gm...> - 2010年01月09日 03:26:11
I can reproduce this error with the current svn.
I doubt if this is a matplotlib issue, because it works fine if the
number of axes is small.
To me, it seems as some memory error in the ghostscript, but my quick
googling did not show any relevant information.
So, I hope some postscript expert take a look at the issue.
However, note that pcolormesh in backends other than agg is extremely
inefficient, and I strongly discourage its use in other backends.
Your current example could be much efficient if you simply can use
imshow. Do you have to use pcolormesh? Your current example seems to
be easily convertible to imshow, but you original example may not.
In case the use of pcolormesh is not avoidable, I can think of two workarounds.
1) save as pdf first then convert to eps. Saving as pdf will take as
much time as saving as ps.
2) Save as eps but rasterize the pcolormesh plots. This is my choice
and saving time is also not very long. As a matter of fact, whenever
pcolormesh is used, I strongly recommend to consider rasterizing it.
For your current script, you may add something like below at the end
of your for-loop.
 map1.set_zorder(0.5)
 map2.set_zorder(0.5)
 map3.set_zorder(0.5)
 ax1.set_rasterization_zorder(0.6)
 ax2.set_rasterization_zorder(0.6)
 ax3.set_rasterization_zorder(0.6)
This code needs to be inside the for-loop so that all the pcolormesh
plots get rasterized.
Also, note that, in your current script, the third pcolormesh plot is
assigned to "map2", instead of "map3", so you need to fix this first.
Regards,
-JJ
On Thu, Jan 7, 2010 at 11:17 AM, Eric Emsellem <eem...@es...> wrote:
> Hi
>
> I finally managed to write a simplified version of my python script
> which crashes when trying to save the figure as a postscript file. (this
> is related to a previous post). See below. The script is provided, as
> well as the full error message.
>
> Sorry for the long script, but basically I am plotting 3x7 arrays via
> pcolormesh. The script looks pretty dum because it was adapted from a
> more complicated one where the bins/pixels are not exactly squared and
> are rotated. In the version below I have tried to remove the unncessary
> complication. And I get a failure from ghostscript when I try to save it
> as eps. It works when I save it as a png.
>
> Can anyone tell me what's wrong there? Again I am using:
>
> ### On an OpenSuse 11.2, 64b
> xpdf distiller (but I tried others).
> matplotlib 0.99.1.1
> backend WXAgg version 2.8.10.1
> Python 2.6.2 (r262:71600, Oct 24 2009, 03:15:21)
> IPython 0.10 -- An enhanced Interactive Python.
>
>
> THANKS
> Eric
> ====================================================================
>
> ######################################################################
> # Script to run which crashes when saving the figure as an eps file
> ######################################################################
> #!/usr/bin/python
> import numpy as num
> import pylab as pl
>
> def pos(i,j, w, h) :
>  return [0.05+ j*(w+0.02), 0.99 - (i+1)*(h+0.023)+0.025, w, h]
>
>
> ## Opening the figure
> ## Figure
> pl.figure(1, figsize=(5*1.2, 7*1.5))
> fig = pl.gcf()
> pl.clf()
>
> ## Size of figure
> figH = fig.get_figheight()
> figW = fig.get_figwidth()
> w = 0.99 / 3. -0.03
> h = 0.99 / 7 - 0.022
>
> ## List of data to plot (I take 7 times the same stuff)
> listgal = ["1","2","3","4","5","6",",7"]
>
> ## Initialisation of start, end and step
> ngal = len(listgal)
> start = [-30.,-30.]
> end = [30.,30.]
> npix = [80,80]
> x = num.linspace(start[0],end[0], npix[0])
> y = num.linspace(start[1],end[1], npix[1])
> step = [x[1]-x[0], y[1]-y[0]]
> X,Y = num.meshgrid(x,y)
>
> ## Initialisation of data
> data = num.random.random((npix[0], npix[1]))
>
> pl.ioff()
> for k in range(ngal) :
>  gal = listgal[k]
>
>  ## Coordinates
>
>  ## Grid for rotation
>  Xp,Yp = X - step[0]/2., Y - step[1]/2.
>  X1,Y1 = X+step[0]/2.,Y+step[1]/2.
>  X2,Y2 = X-step[0]/2.,Y+step[1]/2.
>  X3,Y3 = X-step[0]/2.,Y-step[1]/2.
>  X4,Y4 = X+step[0]/2.,Y-step[1]/2.
>  minXc = num.min(num.concatenate((X1,X2,X3,X4)))
>  maxXc = num.max(num.concatenate((X1,X2,X3,X4)))
>  minYc = num.min(num.concatenate((Y1,Y2,Y3,Y4)))
>  maxYc = num.max(num.concatenate((Y1,Y2,Y3,Y4)))
>  dX = maxXc - minXc
>  dY = maxYc - minYc
>
>  ## Deriving the right aspect ratio etc
>  aspectIma = dX / dY
>  aspectFig = figW / figH
>  aspectWin = w / h
>  if (aspectIma < aspectWin*aspectFig) :
>   maxXc = maxXc * aspectFig * aspectWin / aspectIma
>   minXc = minXc * aspectFig * aspectWin / aspectIma
>  else :
>   maxYc = maxYc * aspectIma / (aspectFig * aspectWin)
>   minYc = minYc * aspectIma / (aspectFig * aspectWin)
>  extentR = minXc, maxXc, minYc, maxYc
>
>  cmap = pl.cm.jet
>  minI, maxI = 0., 1.
>  cmap.set_bad('w',1.0)
>  j = 0
>  ax1 = fig.add_axes(pos(k,j, w, h))
>  map1 = ax1.pcolormesh(Xp,Yp,data,shading='flat',vmin=minI,vmax=maxI,
> cmap=cmap)
>  pl.plot([0.],[0.],'k+', markersize=10, lw=3)
>  xticklabels = pl.getp(pl.gca(), 'xticklabels')
>  pl.setp(xticklabels, fontsize=8)
>  yticklabels = pl.getp(pl.gca(), 'yticklabels')
>  pl.setp(yticklabels, fontsize=8)
>  pl.axis(extentR)
>  j += 1
>
>  ax2 = fig.add_axes(pos(k,j, w, h))
>  map2 = ax2.pcolormesh(Xp,Yp,data,shading='flat',vmin=minI,vmax=maxI,
> cmap=cmap)
>  pl.plot([0.],[0.],'k+', markersize=10, lw=3)
>  pl.axis(extentR)
>  ax2.set_yticks([])
>  xticklabels = pl.getp(pl.gca(), 'xticklabels')
>  pl.setp(xticklabels, fontsize=8)
>  pl.text(0.02,0.96, "%4.0f/%4.0f"%(minI,maxI),
> verticalalignment='top',rotation='vertical',transform = ax2.transAxes,
> fontsize=8)
>  j += 1
>
>  ax3 = fig.add_axes(pos(k,j, w, h))
>  map2 = ax3.pcolormesh(Xp,Yp,data,shading='flat',vmin=0.,vmax=1.,
> cmap=cmap)
>  pl.plot([0.],[0.],'k+', markersize=10, lw=3)
>  pl.axis(extentR)
>  ax3.set_yticks([])
>  xticklabels = pl.getp(pl.gca(), 'xticklabels')
>  pl.setp(xticklabels, fontsize=8)
>  pl.text(0.02,0.96, "%4.0f/%4.0f"%(minI,maxI),
> verticalalignment='top',rotation='vertical',transform = ax3.transAxes,
> fontsize=8)
>  j += 1
>  pl.text(0.92,0.5, gal,
> rotation='vertical',verticalalignment='center',transform = ax3.transAxes)
>
>  k += 1
>
> pl.ion()
> pl.show()
>
> #######################################################################
> ## ERROR MESSAGE WHEN DOING:
> ## savefig("tmp.eps")
> ########################################################################
> savefig("toto.eps")
> Error: /limitcheck in --def--
> Operand stack:
>  pa_c2c  --nostringval--
> Execution stack:
>  %interp_exit  .runexec2  --nostringval--  --nostringval--
> --nostringval--  2  %stopped_push  --nostringval--  --nostringval--
> --nostringval--  false  1  %stopped_push  1878  1  3
> %oparray_pop  1877  1  3  %oparray_pop  1861  1  3  %oparray_pop
> 1755  1  3  %oparray_pop  --nostringval--  %errorexec_pop
> .runexec2  --nostringval--  --nostringval--  --nostringval--  2
> %stopped_push  --nostringval--
>
> Dictionary stack:
>
>  --dict:1171/3371(ro)(G)--  --dict:1/20(G)--  --dict:74/200(L)--
> --dict:5/6(ro)(L)--  --dict:179/300(L)--  --dict:44/200(L)--
> --dict:65534/65534(L)--
>
> Current allocation mode is local
>
> Last OS error: 2
>
> Current file position is 14229051
>
> GPL Ghostscript 8.64: Unrecoverable error, exit code 1
>
> ---------------------------------------------------------------------------
>
> RuntimeError               Traceback (most recent call
> last)
>
> /science/ATLAS3D/python/Analysis/Try.py in <module>()
> ----> 1
>   2
>   3
>   4
>   5
>
> /usr/lib64/python2.6/site-packages/matplotlib/pyplot.pyc in
> savefig(*args, **kwargs)
>  354 def savefig(*args, **kwargs):
>
>  355   fig = gcf()
>
> --> 356   return fig.savefig(*args, **kwargs)
>
>  357 if Figure.savefig.__doc__ is not None:
>
>  358   savefig.__doc__ = dedent(Figure.savefig.__doc__)
>
>
> /usr/lib64/python2.6/site-packages/matplotlib/figure.pyc in
> savefig(self, *args, **kwargs)
>  1030         patch.set_alpha(0.0)
>
>  1031
>
> -> 1032     self.canvas.print_figure(*args, **kwargs)
>
>  1033
>
>  1034     if transparent:
>
>
> /usr/lib64/python2.6/site-packages/matplotlib/backends/backend_wxagg.pyc
> in print_figure(self, filename, *args, **kwargs)
>   98   def print_figure(self, filename, *args, **kwargs):
>
>   99     # Use pure Agg renderer to draw
>
>
> --> 100     FigureCanvasAgg.print_figure(self, filename, *args,
> **kwargs)
>  101     # Restore the current view; this is needed because the
>
>
>  102     # artist contains methods rely on particular attributes
>
>
> /usr/lib64/python2.6/site-packages/matplotlib/backend_bases.pyc in
> print_figure(self, filename, dpi, facecolor, edgecolor, orientation,
> format, **kwargs)
>
>  1474         orientation=orientation,
>
>  1475         bbox_inches_restore=_bbox_inches_restore,
>
> -> 1476         **kwargs)
>
>  1477     finally:
>
>  1478       if bbox_inches and restore_bbox:
>
>
> /usr/lib64/python2.6/site-packages/matplotlib/backend_bases.pyc in
> print_eps(self, *args, **kwargs)
>  1327     from backends.backend_ps import FigureCanvasPS # lazy
> import
>  1328     ps = self.switch_backends(FigureCanvasPS)
>
> -> 1329     return ps.print_eps(*args, **kwargs)
>
>  1330
>
>  1331   def print_pdf(self, *args, **kwargs):
>
>
> /usr/lib64/python2.6/site-packages/matplotlib/backends/backend_ps.pyc in
> print_eps(self, outfile, *args, **kwargs)
>  853
>
>  854   def print_eps(self, outfile, *args, **kwargs):
>
> --> 855     return self._print_ps(outfile, 'eps', *args, **kwargs)
>
>  856
>
>  857
>
>
> /usr/lib64/python2.6/site-packages/matplotlib/backends/backend_ps.pyc in
> _print_ps(self, outfile, format, *args, **kwargs)
>  882       self._print_figure_tex(outfile, format, imagedpi,
> facecolor, edgecolor,
>  883                  orientation, isLandscape,
> papertype,
> --> 884                  **kwargs)
>
>  885     else:
>
>  886       self._print_figure(outfile, format, imagedpi,
> facecolor, edgecolor,
>
> /usr/lib64/python2.6/site-packages/matplotlib/backends/backend_ps.pyc in
> _print_figure_tex(self, outfile, format, dpi, facecolor, edgecolor,
> orientation, isLandscape, papertype, **kwargs)
>
>  1188       gs_distill(tmpfile, isEPSF, ptype=papertype,
> bbox=bbox)
>  1189     elif rcParams['ps.usedistiller'] == 'xpdf':
>
> -> 1190       xpdf_distill(tmpfile, isEPSF, ptype=papertype,
> bbox=bbox)
>  1191     elif rcParams['text.usetex']:
>
>  1192       if False: pass # for debugging
>
>
> /usr/lib64/python2.6/site-packages/matplotlib/backends/backend_ps.pyc in
> xpdf_distill(tmpfile, eps, ptype, bbox)
>  1345   fh = file(outfile)
>  1346   if exit_status: raise RuntimeError('ps2pdf was not able to
> process your \
> -> 1347 image.\n\Here is the report generated by ghostscript:\n\n' +
> fh.read())
>  1348   else: verbose.report(fh.read(), 'debug')
>  1349   fh.close()
>
> RuntimeError: ps2pdf was not able to process your image.
> \Here is the report generated by ghostscript:
>
>
> ------------------------------------------------------------------------------
> This SF.Net email is sponsored by the Verizon Developer Community
> Take advantage of Verizon's best-in-class app development support
> A streamlined, 14 day to market process makes app distribution fast and easy
> Join now and get one step closer to millions of Verizon customers
> http://p.sf.net/sfu/verizon-dev2dev
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
From: Jae-Joon L. <lee...@gm...> - 2010年01月09日 02:34:50
On Sun, Jan 3, 2010 at 4:30 PM, per freem <per...@gm...> wrote:
> is there a way to do this in matplotlib?
With subplots, I believe the answer is no. You may try to fiddle with
anchor positions of individual subplots, but this will only work for
some limited cases.
With axes_grid toolkit, yes.
-JJ

Showing 6 results of 6

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 によって変換されたページ (->オリジナル) /