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



Showing results of 280

<< < 1 2 3 4 5 .. 12 > >> (Page 3 of 12)
From: Ken M. <km...@gm...> - 2005年08月25日 15:11:03
On Aug 25, 2005, at 10:02 AM, Schindler Benjamin wrote:
> Since I have to leave from here I cannot yet produce a sample app that 
> would show this behaviour.
It doesn't have to be anything complex, just the bare functionality of 
whatever you're working on. I'll be happy to take a look at it 
tomorrow.
> However, I tried to have a non-empty list at the beginning. I replaced 
> Line2D([],[]) with Line2D([1,2],[1,2]) just for the sake of trying - 
> with no luck apparently.
I'm sorry if I gave you the impression that that was the problem... 
it's a potential problem, but I didn't mean to suggest that it's why 
your plot isn't being draw.
Ken
From: Schindler B. <bsc...@st...> - 2005年08月25日 15:04:58
Since I have to leave from here I cannot yet produce a sample app that =
would show this behaviour. However, I tried to have a non-empty list at =
the beginning. I replaced Line2D([],[]) with Line2D([1,2],[1,2]) just =
for the sake of trying - with no luck apparently.=20
I'll post a sample app tomorrow asap
-----Urspr=FCngliche Nachricht-----
Von: Ken McIvor [mailto:km...@gm...]
Gesendet: Do 25.08.2005 16:54
An: Schindler Benjamin
Cc: mat...@li...
Betreff: Re: [Matplotlib-users] Line2D and wx Backend
=20
On Aug 25, 2005, at 9:33 AM, Schindler Benjamin wrote:
> Some event will occur and do the following (it does):
> self.axes.add_line(Line2D([],[])
You really don't want to plot empty lines, as it will end up making 0,0=20
part of the total data range. If your data points are on the positive=20
side of the origin and are a long way from zero you'll end up with a=20
lot of empty space on the axis and a little squiggle of a plot off to=20
the right. I've been meaning to file a bug report about this behavior,=20
which I believe is caused by Numeric.array([]) returning=20
Numeric.zeros((0,), 'l').
> I do receive data, I see that I have lines in self.axes, but I never=20
> achieved to have a line on my display. What am I missing?
I can think of a few possible problems but wouldn't care to hazard a=20
guess without knowing how things like event generation and handling are=20
implemented I. If you could send an example program which exhibits=20
this problem, I will be happy to look into it.
Ken
From: Ken M. <km...@gm...> - 2005年08月25日 14:53:54
On Aug 25, 2005, at 9:33 AM, Schindler Benjamin wrote:
> Some event will occur and do the following (it does):
> self.axes.add_line(Line2D([],[])
You really don't want to plot empty lines, as it will end up making 0,0 
part of the total data range. If your data points are on the positive 
side of the origin and are a long way from zero you'll end up with a 
lot of empty space on the axis and a little squiggle of a plot off to 
the right. I've been meaning to file a bug report about this behavior, 
which I believe is caused by Numeric.array([]) returning 
Numeric.zeros((0,), 'l').
> I do receive data, I see that I have lines in self.axes, but I never 
> achieved to have a line on my display. What am I missing?
I can think of a few possible problems but wouldn't care to hazard a 
guess without knowing how things like event generation and handling are 
implemented I. If you could send an example program which exhibits 
this problem, I will be happy to look into it.
Ken
From: Ryan K. <rya...@co...> - 2005年08月25日 14:48:44
I have an interesting problem importing pylab. Most of my work is 
stored on a FAT32 partition so I can access it from windows or linux. 
If I run python from a dos command open on that partition I get:
E:\pythonscripts>python
Enthought Edition build 1069
Python 2.3.5 (#62, Mar 22 2005, 21:53:13) [MSC v.1200 32 bit (Intel)] on 
win32
Type "help", "copyright", "credits" or "license" for more information.
 >>> import pylab
Traceback (most recent call last):
 File "<stdin>", line 1, in ?
 File "C:\Python23\Lib\site-packages\pylab.py", line 1, in ?
 from matplotlib.pylab import *
 File "C:\Python23\Lib\site-packages\matplotlib\pylab.py", line 199, in ?
 import backends
 File "C:\Python23\Lib\site-packages\matplotlib\backends\__init__.py", 
line 15,
 in ?
 raise ValueError, 'Unrecognized backend %s' % backend
ValueError: Unrecognized backend WxAgg
 >>>
But if I do the same things from a dos prompt open on the C partition it 
works fine:
C:\Documents and Settings\Ryan Krauss>python
Enthought Edition build 1069
Python 2.3.5 (#62, Mar 22 2005, 21:53:13) [MSC v.1200 32 bit (Intel)] on 
win32
Type "help", "copyright", "credits" or "license" for more information.
 >>> import pylab
 >>>
How can this be fixed?
Thanks,
Ryan
From: Schindler B. <bsc...@st...> - 2005年08月25日 14:34:53
Hi - I'm having problems - I don't get any line displayed on my screen. =
My code looks as follows (Init):
 self.figure =3D Figure()
 self.axes =3D self.figure.add_subplot(111)
 self.canvas =3D FigureCanvas(self.Panel, -1, self.figure)
 self.sizer =3D wx.BoxSizer(wx.VERTICAL)
 =20
 self.sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW)
 self.Panel.SetSizer(self.sizer)
Some event will occur and do the following (it does):
 self.axes.add_line(Line2D([],[])
As soon this event arrives, I'll receive data:
 def receive(self, data, source):
 line =3D self.data[source][0] # Retreive the line
 xdata =3D line.get_xdata()
 ydata =3D line.get_ydata()
 for x in data:
 xdata.append(x[2]) # The data I've received
 ydata.append(x[0])
 =20
 self.data[source][0].set_data(xdata, ydata) # Set the data
 self.canvas.draw()
 self.canvas.gui_repaint()
I do receive data, I see that I have lines in self.axes, but I never =
achieved to have a line on my display. What am I missing?
Thanks
Benjamin Schindler
From: Menno S. <m.s...@ge...> - 2005年08月25日 13:21:09
Hello all
I used to work with python 2.2 and with that version I was able to 
make multiple plots in one script like the example below:
from pylab import *
x = arange(10)
plot(x, c = 'b')
print isinteractive()
show()
plot(x, c = 'r')
print isinteractive()
show()
plot(x[::-1], c = 'g')
print isinteractive()
show()
The script would stop running during the visualisation of the plot 
and continue after I manually closed the plotting window.
However, with the newest python (2.4.1) and matplotlib.pylab version 
0.83.2, only the first window can be closed manually. Python then 
goes into interactive mode and all the plotting commands are plotted 
into one new window, which can not be accessed anymore by windows, 
the window hangs.
How can I make make multiple plots within one script using the newest 
python version?
thanks
Menno Straatsma
From: John H. <jdh...@ac...> - 2005年08月24日 22:57:32
>>>>> "David" == David Cameron <dc...@ce...> writes:
 David> Thanks for the suggestion I've now got lines through the
 David> origin. Do you know of anyway to add tick marks and labels
 David> to those lines? David
There is no built-in support for this currently, you would have to
draw the ticks and tick labels yourself (eg with the TICKLEFT,
TICKRIGHT, TICKUP, TICKDOWN linestyles). Making axis and tick
placement much more flexible is a high priority and is listed under
the "Axis autoranging and tick customization" section of the goals
page at http://matplotlib.sourceforge.net/goals.html. 
Feel free to file a support request on
http://sourceforge.net/tracker/?group_id=80706&atid=560721 to help us
track this issue.
Thanks,
JDH
From: John H. <jdh...@ac...> - 2005年08月24日 22:51:37
>>>>> "Vinj" == Vinj Vinj <vin...@ya...> writes:
 Vinj> I'm getting the following error: from matplotlib.pylab
 Vinj> import * File
 Vinj> "/usr/lib/python2.4/site-packages/matplotlib/pylab.py", line
 Vinj> 709, in ? figimage.__doc__ = Figure.figimage.__doc__ + """
 Vinj> TypeError: unsupported operand type(s) for +: 'NoneType' and
 Vinj> 'str' "
 Vinj> Any ideas what it might be and how I can get around it?
Any chance you are getting this with a py2exe frozen app?
If I recall correctly, there is an optimize flag in py2exe that
suppresses doc strings. This might explain your problem.
Please provide as much information as you can with posts. 
JDH
From: <m.a...@ri...> - 2005年08月24日 14:49:54
Hi John
> Not sure what you are doing wrong, but here's an example I just tested
> that created two PNGs with the indicated sizes in pixels (verified in
> the GIMP)
> 
> from pylab import *
> 
> Perhaps you can adapt it to your code.
> 
I tested it on my system and it did as it should. So I started to strip 
down my code to the basics. Replacing/Adding bit by bit. One error might 
have been that I used _F_igure() instead of _f_igure(). But the problem 
didn't go away. So I removed all "references" (var: fig) to the created 
figure... and it worked from then on...
Thanks John to bringing me back to the basics... but I still don't know 
what the reason was!
Merry greetings,
Marco - goes now after bug squashing to a real Squash session 8o)
The working code:
import matplotlib
matplotlib.use('Agg') # Agg, Cairo, GTK, GTKAgg, GTKCairo, PS, TkAgg, WX, 
WXAgg, Paint, GD, Template
from pylab import *
def create_png(filename, width_in_pixel, height_in_pixel):
 
 bar_colors = ["#E3E3AA", "#BFE0FF", "#FFE8C4", "#C6DFDA", 
"#D9D1EB"]
 bar_performances = [0.705, 1.757, 1.057, -0.635, -1.347]
 bar_descriptions = ('Scenario 1\nExpected\n%.2f%%', 'Scenario 
2\nBest case\n%.2f%%', 'Scenario 3\nBoom\n%.2f%%', 'Scenario 
4\nRecession\n%.2f%%', 'Scenario 5\nWorst case\n%.2f%%')
 
 dpi = 100
 figure(figsize=(int(width_in_pixel / dpi), int(height_in_pixel / 
dpi)))
 for b_num, b_perf in enumerate(bar_performances):
 bar((b_num + 0.55,), (b_perf,), width=.9, 
color=bar_colors[b_num])
 # Place the text in the middle of the bar
 t = text(b_num + 1, b_perf / 2.0, bar_descriptions[b_num] 
% b_perf, 
 horizontalalignment='center', 
 verticalalignment='center',
 size=9)
 
 gca()
 grid(True)
 xticks(arange(1,6), [''] * 5)
 ylabel('Performance %')
 draw() # force a draw
 savefig(filename, dpi=100)
if __name__ == '__main__':
 create_png('c:/temp/aaaaa_scenarios_600_300.png', 600, 300)
 create_png('c:/temp/aaaaa_scenarios_600_800.png', 600, 800)
 create_png('c:/temp/aaaaa_scenarios_800_600.png', 800, 600)
 create_png('c:/temp/aaaaa_scenarios_1000_200.png', 1000, 200)
From: John H. <jdh...@ac...> - 2005年08月24日 13:26:45
>>>>> "Yves" == Yves Moisan <ym...@gr...> writes:
 Yves> Hi All, I'm striving to understand how I ca stuff a file
 Yves> object (e.g. StringIO) to print_figure for an Agg backend.
 Yves> backend_agg.py states : "If filename is a fileobject, write
 Yves> png to file object (thus you can, for example, write the png
 Yves> to stdout".
This has come up a number of times. I worked on this once. The
sticking point is that libpng takes a FILE pointer, and the cstringio
doesn't provide one. There must be a way to do it, but I haven't
figured it out yet. Please file a support request on the sf site to
remind us to figure it out!
Thanks,
JDH
From: John H. <jdh...@ac...> - 2005年08月24日 13:25:40
>>>>> "m" == m aschwanden <m.a...@ri...> writes:
 m> All the rendered pngs have a size of 800x600 pixels!!!
 m> What the heck am I missing? Here the latest code:
Not sure what you are doing wrong, but here's an example I just tested
that created two PNGs with the indicated sizes in pixels (verified in
the GIMP)
 from pylab import *
 fig = figure(figsize=(8,6))
 plot([1,2,3])
 savefig('test1.png', dpi=100) # 800 x 600
 savefig('test2.png', dpi=200) #1600 x 1200
 show()
Perhaps you can adapt it to your code.
Hope this helps,
JDH
From: Nicholas Y. <su...@su...> - 2005年08月24日 13:10:13
On Wed, 2005年08月24日 at 12:58 +0200, Jesper Larsen wrote:
> CherryPy is able to serve/stream the image directly to the browser if it is 
> converted to a string using an appropriate encoding (png, rgb maybe). PIL is 
> able to do this conversion:
> 
> http://www.theorganization.net/mt/archives/2005/05/30/ive_finally_got_it.html
> 
> I would like to do something similar with my matplotlib image (i.e. convert it 
> to a string with an appropriate encoding) instead of writing it to the 
> harddisk. Does anyone know if that is possible?
I've just been working on something similar (although not for web use)
myself and came up with the following solution although it's possible
there's a better way.
Using the agg backend you can obtain an RGBA buffer or RGB string which
can then be loaded as a PIL Image for processing. I've adapted a the
examples/agg_oo.py to demonstrate.
----
from matplotlib.backends.backend_agg \
 import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
import Image
fig = Figure()
canvas = FigureCanvas(fig)
ax = fig.add_subplot(111)
ax.plot([1,2,3])
ax.set_title('hi mom')
ax.grid(True)
ax.set_xlabel('time')
ax.set_ylabel('volts')
canvas.draw()
size = canvas.get_width_height()
usebuffer = True
if usebuffer:
 # Load the agg buffer directly as the source of the PIL image
 # - could be less stable as agg and PIL share memory.
 buf = canvas.buffer_rgba()
 im = Image.frombuffer('RGBA', size, buf, 'raw', 'RGBA', 0, 1)
else:
 # Save the agg buffer to a string and load this into the PIL image.
 buf = canvas.tostring_rgb()
 im = Image.fromstring('RGB', size, buf, 'raw', 'RGB', 0, 1)
im.show()
----
Hope this helps,
Nick
From: <m.a...@ri...> - 2005年08月24日 12:16:58
Hi
Me once more. I am still working on the problem. The figures / canvases 
have the proper sizes (see print-log) but when they are saved, they will 
end up being 800x600 pixel pictures. The print-statements show the 
following log:
- - - - - - - -
Width: 2000
Height: 10000
dpi: 72
fig.get_dpi() = 72
Canvas size: (1944, 9936)
Figure size: (27.0, 138.0)
- - - - - - - -
Width: 600
Height: 800
dpi: 72
fig.get_dpi() = 72
Canvas size: (576, 792)
Figure size: (8.0, 11.0)
- - - - - - - -
Width: 800
Height: 600
dpi: 72
fig.get_dpi() = 72
Canvas size: (792, 576)
Figure size: (11.0, 8.0)
- - - - - - - -
Width: 1000
Height: 200
dpi: 72
fig.get_dpi() = 72
Canvas size: (936, 144)
Figure size: (13.0, 2.0)
All the rendered pngs have a size of 800x600 pixels!!!
What the heck am I missing? Here the latest code:
import matplotlib
matplotlib.use('Agg') # Agg, Cairo, GTK, GTKAgg, GTKCairo, PS, TkAgg, WX, 
WXAgg, Paint, GD, Template
from pylab import *
def create_png(filename, width_in_pixel, height_in_pixel):
 
 bar_colors = ["#E3E3AA", "#BFE0FF", "#FFE8C4", "#C6DFDA", 
"#D9D1EB"]
 bar_performances = [0.705, 1.757, 1.057, -0.635, -1.347]
 bar_descriptions = ('Scenario 1\nExpected\n%.2f%%', 'Scenario 
2\nBest case\n%.2f%%', 'Scenario 3\nBoom\n%.2f%%', 'Scenario 
4\nRecession\n%.2f%%', 'Scenario 5\nWorst case\n%.2f%%')
 
 dpi = 72
 fig = Figure(figsize=(width_in_pixel / dpi, height_in_pixel / 
dpi), dpi=dpi,facecolor="#D2D2D2")
 canvas = FigureCanvasBase(fig)
 fig.add_subplot(111)
 
 for b_num, b_perf in enumerate(bar_performances):
 bar((b_num + 0.55,), (b_perf,), width=.9, 
color=bar_colors[b_num])
 # Place the text in the middle of the bar
 t = text(b_num + 1, b_perf / 2.0, bar_descriptions[b_num] 
% b_perf, 
 horizontalalignment='center', 
 verticalalignment='center',
 size=9)
 
 gca()
 grid(True)
 xticks(arange(1,6), [''] * 5)
 ylabel('Performance %')
 draw() # force a draw
 print "- - - - - - - -"
 print "Width: %d" % width_in_pixel
 print "Height: %d" % height_in_pixel
 print "dpi: %d" % dpi
 print "fig.get_dpi() = %d" % fig.get_dpi()
 print "Canvas size: ", canvas.get_width_height() 
 print "Figure size: ", fig.get_size_inches()
 print 
 
 savefig(filename)
if __name__ == '__main__':
 create_png('c:/temp/aaaaa_scenarios_2000_10000.png', 2000, 10000)
 create_png('c:/temp/aaaaa_scenarios_600_800.png', 600, 800)
 create_png('c:/temp/aaaaa_scenarios_800_600.png', 800, 600)
 create_png('c:/temp/aaaaa_scenarios_1000_200.png', 1000, 200)
Even more desperate greetings,
Marco
From: Jeff W. <js...@fa...> - 2005年08月24日 11:44:10
Jesper Larsen wrote:
>Hi,
>
>When I run the following script (I hope the code indentations aren't messed up 
>by the mailing list software):
>
>#!/usr/bin/env /usr/bin/python
>
>import pylab
>import matplotlib.toolkits.basemap as basemap
>
>def main():
> filename = 'world.png'
> m = basemap.Basemap()
> pylab.figure(figsize=(8,m.aspect*8))
> m.drawcoastlines() # draw coastlines
> m.drawmeridians(pylab.arange(0.,420.,60.),labels=[0,0,0,1]) # draw meridians
> pylab.savefig(filename)
>
>if __name__ == '__main__': main()
>
>The meridians are not drawn at 60W and 120W. Is this a bug in basemap or have 
>I misunderstood something?
>
>Kind regards,
>Jesper
>
> 
>
Jesper: Just change
m.drawmeridians(pylab.arange(0.,420.,60.),labels=[0,0,0,1])
to
m.drawmeridians(pylab.arange(-180.,180.,60.),labels=[0,0,0,1])
and you will see those missing meridians.
-Jeff
-- 
Jeffrey S. Whitaker Phone : (303)497-6313
NOAA/OAR/CDC R/CDC1 FAX : (303)497-6449
325 Broadway Web : http://www.cdc.noaa.gov/~jsw
Boulder, CO, USA 80305-3328 Office: Skaggs Research Cntr 1D-124
From: Jesper L. <jl...@dm...> - 2005年08月24日 11:30:19
Hi,
When I run the following script (I hope the code indentations aren't messed up 
by the mailing list software):
#!/usr/bin/env /usr/bin/python
import pylab
import matplotlib.toolkits.basemap as basemap
def main():
 filename = 'world.png'
 m = basemap.Basemap()
 pylab.figure(figsize=(8,m.aspect*8))
 m.drawcoastlines() # draw coastlines
 m.drawmeridians(pylab.arange(0.,420.,60.),labels=[0,0,0,1]) # draw meridians
 pylab.savefig(filename)
if __name__ == '__main__': main()
The meridians are not drawn at 60W and 120W. Is this a bug in basemap or have 
I misunderstood something?
Kind regards,
Jesper
From: Jesper L. <jl...@dm...> - 2005年08月24日 10:59:06
Hi matplotlib users,
I'm using matplotlib for an application for producing tsunami travel time 
contour maps. Recently I discovered the CherryPy (cherrypy.org) web server 
framework which allows you to very easily embed a web server in your 
application. This allows the application to be accessed remotely through a 
web browser.
At present the application produces the contour plots when it receives input 
from a web browser that it should do so. The contour plot png image is then 
saved to disk and served to the user.
CherryPy is able to serve/stream the image directly to the browser if it is 
converted to a string using an appropriate encoding (png, rgb maybe). PIL is 
able to do this conversion:
http://www.theorganization.net/mt/archives/2005/05/30/ive_finally_got_it.html
I would like to do something similar with my matplotlib image (i.e. convert it 
to a string with an appropriate encoding) instead of writing it to the 
harddisk. Does anyone know if that is possible?
Kind regards,
Jesper
From: <m.a...@ri...> - 2005年08月24日 07:38:59
Hi there
I would like to generate pngs. The trouble I have: I can't size the png. I 
tried so many variations and browsed through lots of mailings... it seems, 
I am too stupid for it. Here is my last approach:
from pylab import *
def create_png(filename, width_in_pixel, height_in_pixel):
 bar_colors = ["#E3E3AA", "#BFE0FF", "#FFE8C4", "#C6DFDA", 
"#D9D1EB"]
 bar_performances = [7.05, 17.57, 10.45, -6.35, -13.47]
 
 fig = Figure()
 canvas = FigureCanvasBase(fig)
 fig.add_subplot(111)
 
 for b_num, b_perf in enumerate(bar_performances):
 bar((b_num + 0.55,), (b_perf,), width=.9, 
color=bar_colors[b_num])
 
 gca()
 grid(True)
 xticks(arange(1,6), ('Scenario 1\nExpected', 'Scenario 2\nBest 
case', 'Scenario 3\nBoom', 'Scenario 4\nRecession', 'Scenario 5\nWorst 
case'))
 ylabel('Performance')
 
 dpi = canvas.figure.get_dpi()
 fig.set_figsize_inches(width_in_pixel / dpi, height_in_pixel / 
dpi)
 
 canvas.draw() # force a draw
 
 savefig(filename, dpi=dpi)
if __name__ == '__main__':
 create_png('c:/temp/aaaaa_scenarios.png', 400, 150)
Can you give me any hints how to correct the problem? The png is always 
around (600,400) pixel... My next approach would be to create the png and 
afterwards scale it with PIL - but it can't be that matplotlib does not 
offer a proper scaling/resizing feature - does it?
Desperate Greetings,
Marco
From: Jeff W. <js...@fa...> - 2005年08月23日 19:09:31
Attachments: pylab.patch figure.patch
Eric Firing wrote:
>
>>
>> Thanks Eric - I just wanted to make sure I wasn't missing some 
>> obvious way to do it.
>
>
>
> Jeff,
>
> A possible trick would be to make a very skinny subplot (using custom 
> sizing and positioning) and use contourf itself to make the colorbar 
> in it. I think this is actually the way I am doing it in Matlab. (A 
> colleague and I greatly customized the Matlab colorbar for this sort 
> of thing a long time ago.)
>
> Eric
Eric/Phil: Here is a hack that produces colorbars with discrete contour 
intervals for use with contourf. It's in the form of a patch for 
pylab.py and figure.py (based on 0.83.2). When pylab.colorbar is 
called, it checks to see if the current image was created by contourf, 
and if so calls figure.colobar_contourf (which uses contourf instead of 
imshow to make the colorbar). Here's a test script:
"""test script for contourf colorbar"""
from pylab import *
def func3(x,y):
 return (1- x/2 + x**5 + y**3)*exp(-x**2-y**2)
dx, dy = 0.05, 0.05
X,Y = meshgrid(arange(-3.0,3.0001,dx),arange(-3.0,3.0001,dy))
Z = func3(X, Y)
levels = linspace(-1.2,1.2,13)
l,c = contour (X, Y, Z, levels, linewidths=0.5, colors='k')
clabel(c,l,fmt='%4.2f')
l,c = contourf(X, Y, Z, levels, cmap=cm.jet)
colorbar(tickfmt='%4.2f',orientation='horizontal') # horiz colorbar
colorbar(tickfmt='%4.2f',orientation='vertical') # vert colorbar
axis([-3,3,-3,3])
show()
This doesn't address the other two of Phil's requests (triangles at the 
ends, and constant intervals on the colorbar for non-constant contour 
levels), but I think it's a start.
-Jeff
-- 
Jeffrey S. Whitaker Phone : (303)497-6313
Meteorologist FAX : (303)497-6449
NOAA/OAR/CDC R/CDC1 Email : Jef...@no...
325 Broadway Office : Skaggs Research Cntr 1D-124
Boulder, CO, USA 80303-3328 Web : http://tinyurl.com/5telg
From: Yves M. <ym...@gr...> - 2005年08月23日 17:10:06
Hi All,
I'm striving to understand how I ca stuff a file object (e.g. StringIO) to
print_figure for an Agg backend. backend_agg.py states : "If filename is a
fileobject, write png to file object (thus you can, for example, write the png
to stdout".
I tried :
 canvas = FigureCanvasAgg(fig)
 data = StringIO.StringIO()
 canvas.print_figure(data, dpi=150)
 return data.get_value()
But that returns an error from backend_agg.py line 383 (matplotlib v. - 0.76) :
StringIO instance has no attribute 'rfind'.
I've decided to use tempfile, but that leads to something hefty and I hate
writing to disk :
 tempplotfilename = tempfile.mkstemp(suffix='.png')
 canvas.print_figure(tempplotfilename[1], dpi=150)
 data = os.read(tempplotfilename[0],os.fstat(tempplotfilename[0]).st_size)
# self.REQUEST.RESPONSE.setHeader('Content-Length',
os.fstat(tempplotfilename[0]).st_size)
# self.REQUEST.RESPONSE.setHeader('Pragma', 'no-cache')
 self.REQUEST.RESPONSE.setHeader('Content-Type', 'image/png')
# os.close(tempplotfilename[0])
# os.unlink(tempplotfilename[1])
 return data
Can this be done ?
Thank you,
Yves Moisan
From: Alan G I. <ai...@am...> - 2005年08月23日 13:44:31
On 2005年8月23日, T) Sascha GL apparently wrote: 
> Never mind... I found the solution. 
This list is more useful if the solution is actually posted.
Cheers,
Alan Isaac
From: John H. <jdh...@ac...> - 2005年08月23日 13:25:53
>>>>> "Sascha" == Sascha GL <Sas...@gm...> writes:
 Sascha> Never mind... I found the solution. Thanks. Sascha
And the answer, for the archives.... ?
JDH
Never mind... I found the solution. Thanks.
Sascha
-- 
5 GB Mailbox, 50 FreeSMS http://www.gmx.net/de/go/promail
+++ GMX - die erste Adresse für Mail, Message, More +++
From: Sascha G. <Sas...@gm...> - 2005年08月23日 06:20:16
I realize that this is probably not the appropriate place to ask this
question but it may be related to using matplotlib's pylab interface. The
issue is that when I print an array, I get only the first 300 elements and
then " + XX more elements". Is there a way to get rid of this behavior? I'd
guess so because when using Numeric directly, the complete array is printed.
Thanks in advance for your help.
Sascha
-- 
5 GB Mailbox, 50 FreeSMS http://www.gmx.net/de/go/promail
+++ GMX - die erste Adresse für Mail, Message, More +++
From: Phil R. <pj...@uc...> - 2005年08月23日 02:02:59
Attachments: example.png
Just for completness I will attach the figure this time.
Phil
On Mon, Aug 22, 2005 at 02:02:57PM -1000, Eric Firing wrote:
> Phil Rasch wrote:
> >On Mon, Aug 22, 2005 at 12:55:16PM -1000, Eric Firing wrote:
> >
> >>(from phil:)
> >
> >.... stuff deleted ......
> >
> >>Phil, Jeff,
> >>
> >>Yes, the present colorbar is designed for use with images, not with 
> >>contourf, and fixing it (or making a new one) is something I have wanted 
> >>to do for quite a while. I just haven't gotten to it yet. Prompted by 
> >>your two emails, maybe I can at least take a close look during the next 
> >>week to see what it would take. It might be easy--probably is. No 
> >>promises yet, though.
> >>
> >>Eric
> >
> >
> >Thanks Eric,
> >
> >I also believe it should be easy to do. But it is better done by
> >somebody more familiar with matplotlib and python than I. I have
> >written such codes for other languages but need more practice before
> >I could do it elegantly in python.
> >
> >As long as you are digging around in there, can I have you think about
> >another couple features? 
> >
> >1) The best colorbars in my mind have "triangles" at the endpoints
> >that indicate the color for the region higher than the highest
> >contour, and lower than the lowest contours. This allows one to label
> >only the meaningful boundaries and not specify how much above or below
> >those regions.
> >
> >2) I frequently need to set contour intervals (the filled region
> >boundaries) to be approximately logarithmic. But I dont want to have
> >these filled regions occupy a fraction of the colorbar proportional to
> >their fraction of the total interval. I want each region to be equal
> >area on the colorbar. 
> >
> >An example of these features can be seen in the attached PNG figure
> >that I created in Yorick with a colorbar code I wrote. I havent tried
> >for beauty, but these figure are OK for for working plots. You can see
> >the point for the unequal contour intervals in the difference plot at
> >the bottom.
> >
> >For the codes I wrote this necessitated supplying arguments to the
> >colorbar function like....
> >
> >colorbar(levs, colors)
> >where levels was an N element array, and colors was an N+1 element
> >list containing color info for each filled region. 
> >
> >Thanks for listening.
> >
> >Phil
> >
-- 
Phil Rasch, Climate Modeling Section, National Center for Atmospheric Research
Mail --> P.O. Box 3000, Boulder CO 80307 
Shipping --> 1850 Table Mesa Dr, Boulder, CO 80305
email: pj...@uc..., Web: http://www.cgd.ucar.edu/cms/pjr Phone: 303-497-1368, FAX: 303-497-1324 
From: Eric F. <ef...@ha...> - 2005年08月23日 00:06:01
Phil,
> 
> As long as you are digging around in there, can I have you think about
> another couple features? 
OK.
> 
> An example of these features can be seen in the attached PNG figure
I think you forgot to attach the figure--I didn't see it. Your 
description is pretty clear, though.
Eric
3 messages has been excluded from this view by a project administrator.

Showing results of 280

<< < 1 2 3 4 5 .. 12 > >> (Page 3 of 12)
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 によって変換されたページ (->オリジナル) /