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




Showing 12 results of 12

From: Lisa T. <lt...@uc...> - 2008年09月30日 23:28:25
Are there any plans for incorporating this (what used to be mplot3d) 
into the new matplotlib version?
Lisa Tauxe
Scripps Institution of Oceanography
La Jolla, CA 92093-0220
tel: (858) 534-6084
fax: (858) 534-0784
http://magician.ucsd.edu/~ltauxe/
lt...@uc...
NOTE: Fedex or other courier deliveries address:
300C Ritter Hall
8635 Discovery Way
La Jolla, CA 92037
From: Christopher B. <c-...@as...> - 2008年09月30日 22:58:58
Hi Jae-Joon,
JL> I just had a quick look at this problem. And I'm posting a quick
JL> solution in case Christoper haven't dig it yet.
My figure looks great with these changes. Thank you very much!
-- 
Christopher Brown, Ph.D.
Department of Speech and Hearing Science
Arizona State University
From: Jae-Joon L. <lee...@gm...> - 2008年09月30日 22:07:54
Hello,
I just had a quick look at this problem. And I'm posting a quick
solution in case Christoper haven't dig it yet.
Index: lib/matplotlib/legend.py
===================================================================
--- lib/matplotlib/legend.py (revision 6138)
+++ lib/matplotlib/legend.py (working copy)
@@ -532,7 +532,11 @@
 # Set the data for the legend patch
 bbox = self._get_handle_text_bbox(renderer)
- bbox = bbox.expanded(1 + self.pad, 1 + self.pad)
+ #bbox = bbox.expanded(1 + self.pad, 1 + self.pad)
+ bbox = bbox.transformed(self.get_transform())
+ bbox = bbox.padded(self.pad*self.fontsize)
+ bbox = bbox.inverse_transformed(self.get_transform())
+
 l, b, w, h = bbox.bounds
 self.legendPatch.set_bounds(l, b, w, h)
The problem is already well explained by Eric. And my solution is to
interpret the legend.pad as a fraction of the textsize (pad=0.3 seems
to work fine in my eyes). Note that this breaks the backward
compatibility. I personally think the original behavior may have
produced unsatisfactory results in most of the cases and keeping it as
a default may not be a good idea. While I hope others come out with an
elegant solution, I prefer to break the API in this case.
Regards,
-JJ
On Tue, Sep 30, 2008 at 3:38 PM, Eric Firing <ef...@ha...> wrote:
> Christopher Brown wrote:
>> Sorry, meant to send to the list...
>>
>> Hi Eric,
>>
>> EF> > the vertical padding is too large in the first
>> EF> > legend, and too small in the second.
>> EF>
>> EF> This looks to me like a design flaw: the pad is "fractional"
>> EF> (fraction of legend box size), when logically it should be in
>> EF> something like units of legend text height, or possibly in points.
>> EF> This might be easy enough to change, although for backwards
>> EF> compatibility we would need to use a new kwarg.
>>
>> Could you point me to the function where this change needs to occur? I'd
>> like to hack at it, because I have deadline for a figure. I'm searching
>> around in legend.py, is that where I should be looking?
>
> Yes, that is the place. In principle it should be easy to fix, and
> maybe it is...or maybe it isn't. It will certainly have to do with
> transforms, and using the right one the right way in the right place.
>
>>
>> Also, why would a new kwarg be necessary? If the change simply means
>> that the vertical padding is computed correctly, how would that break
>> backward compatibility?
>>
>
> Because the workaround is to fiddle with the pad value for each
> individual case to make the plot look right, so scripts with that
> workaround would fail if suddenly the pad kwarg were to be interpreted
> in sane units.
>
> The new kwarg could be "pad_units", as a modifier for the pad kwarg. Or
> something like a "padpoints" kwarg could be introduced as an overlapping
> replacement. Or we could just break the API and hope it doesn't cause
> too much trouble. I am not sure what the right approach is in this
> case. I'm also not sure whether this is the only place where a "pad"
> value is still in poorly-chosen units. There was another such case that
> we fixed quite a long time ago.
>
> Eric
>
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
From: David G. <d_l...@ya...> - 2008年09月30日 21:20:40
I sent the below - with referenced attachments - about 24 hours ago and have yet to see it posted - was it blocked due to the attachments?
DG
--- On Mon, 9/29/08, David Goldsmith <d_l...@ya...> wrote:
> From: David Goldsmith <d_l...@ya...>
> Subject: canvas.print_figure printing a variable amount of my figure
> To: mat...@li...
> Date: Monday, September 29, 2008, 5:59 PM
> I feel like I must be missing something: below is some
> "minimal sample" code which reproduces a
> "problem" I'm seeing in a more complicated
> situation:
> 
> import matplotlib as MPL
> from matplotlib.backends.backend_agg import FigureCanvasAgg
> as FigureCanvas
> from matplotlib.figure import Figure
> 
> for DPI in range(100,201,25):
> fig = Figure(figsize=(12,9), 
> dpi=DPI, 
> frameon=False)
> canvas = FigureCanvas(fig)
> 
> nx, ny = (N.uint16(12*DPI), N.uint16(9*DPI))
> temp = N.indices((ny, nx), N.uint8)
> result = N.zeros_like(temp[0])
> result[:ny/2,:] = temp[0,:ny/2,:] + temp[1,:ny/2,:]
> result[ny/2:,:] = temp[0,ny/2:,:] - temp[1,ny/2:,:]
> fig.figimage(result/N.float(N.max(result)))
> 
> canvas.print_figure("test"+str(DPI)+"dpi.png")
> 
> Attached are the results on my computer (see usage details
> below). Granted, I'm increasing the resolution each
> iteration, but I'm always placing the "cut" in
> the figure half way through - why does the cut keep creeping
> up 'til it disappears?
> 
> Usage details: matplotlib version=? (I forget how to get
> that), numpy version = 1.0.4, Python version = 2.5.2, OS =
> Windows XPProSP3, 504 MB RAM w/ "Physical Address
> Extension" (whatever that means).
> 
> DG
> 
> PS: If the figures don't come through and for some
> reason my code doesn't work on your platform or
> doesn't reproduce the problem, email me and I'll
> email you the figures directly.
 
From: Eric F. <ef...@ha...> - 2008年09月30日 19:38:28
Christopher Brown wrote:
> Sorry, meant to send to the list...
> 
> Hi Eric,
> 
> EF> > the vertical padding is too large in the first
> EF> > legend, and too small in the second.
> EF>
> EF> This looks to me like a design flaw: the pad is "fractional"
> EF> (fraction of legend box size), when logically it should be in
> EF> something like units of legend text height, or possibly in points.
> EF> This might be easy enough to change, although for backwards
> EF> compatibility we would need to use a new kwarg.
> 
> Could you point me to the function where this change needs to occur? I'd
> like to hack at it, because I have deadline for a figure. I'm searching
> around in legend.py, is that where I should be looking?
Yes, that is the place. In principle it should be easy to fix, and 
maybe it is...or maybe it isn't. It will certainly have to do with 
transforms, and using the right one the right way in the right place.
> 
> Also, why would a new kwarg be necessary? If the change simply means
> that the vertical padding is computed correctly, how would that break
> backward compatibility?
> 
Because the workaround is to fiddle with the pad value for each 
individual case to make the plot look right, so scripts with that 
workaround would fail if suddenly the pad kwarg were to be interpreted 
in sane units.
The new kwarg could be "pad_units", as a modifier for the pad kwarg. Or 
something like a "padpoints" kwarg could be introduced as an overlapping 
replacement. Or we could just break the API and hope it doesn't cause 
too much trouble. I am not sure what the right approach is in this 
case. I'm also not sure whether this is the only place where a "pad" 
value is still in poorly-chosen units. There was another such case that 
we fixed quite a long time ago.
Eric
From: Eric F. <ef...@ha...> - 2008年09月30日 19:15:27
Thomas Guettler wrote:
> Hi,
> 
> this snippet works if there are more (or less) elements in the menMeans 
> tuple. If
> there are three, it does not work since the bar command thinks the three
> element tuple is a tuple of rgb values. But it is a (r, g, b) tuple.
> 
> I think it is a bug. Should I create a ticket?
Yes it is a bug. I don't think a ticket will be needed. A quick look 
indicates that it will be easy to fix, so I will try to remember to do 
it later today. If I haven't done it within 24 hours, send me a reminder.
> 
> I use 0.98.3
> 
> I helped myself by using rgb2hex. But somehow this is not a good solution.
> Maybe colorConverter.to_rgb should return a subclass of tuple called 
> 'ColorTuple'.
> This way it would be easier to distinguish between a tuple of rgb values 
> and a rgb color tuple.
I don't think this will be necessary, and it would not really solve the 
problem in general. I think we already have a solution, but it is not 
being used in the bar() method.
> 
> {{{
> #!/usr/bin/env python
> import numpy as np
> import matplotlib.pyplot as plt
> import matplotlib
> 
> cmap=matplotlib.cm.jet
> menMeans = (20, 35, 30) # Does work if there are more or less then three 
> elements in the tuple
> N=len(menMeans)
> ind = np.arange(N) # the x locations for the groups
> width = 0.35 # the width of the bars
> plt.subplot(111)
> color=matplotlib.colors.colorConverter.to_rgb(cmap(0.5))
The call to to_rgb here seems completely unnecessary; cmap returns rgba, 
and the color kwarg should accept that. All the to_rgb() is doing is 
chopping off the alpha value.
Eric
> rects1 = plt.bar(ind, menMeans, width, color=color)
> plt.show()
> }}}
> 
> {{{
> Traceback (most recent call last):
> File 
> "/usr/lib64/python2.5/site-packages/matplotlib/backends/backend_gtk.py", 
> line 333, in expose_event
> self._render_figure(self._pixmap, w, h)
> File 
> "/usr/lib64/python2.5/site-packages/matplotlib/backends/backend_gtkagg.py", 
> line 75, in _render_figure
> FigureCanvasAgg.draw(self)
> File 
> "/usr/lib64/python2.5/site-packages/matplotlib/backends/backend_agg.py", 
> line 261, in draw
> self.figure.draw(self.renderer)
> File "/usr/lib64/python2.5/site-packages/matplotlib/figure.py", line 
> 759, in draw
> for a in self.axes: a.draw(renderer)
> File "/usr/lib64/python2.5/site-packages/matplotlib/axes.py", line 
> 1523, in draw
> a.draw(renderer)
> File "/usr/lib64/python2.5/site-packages/matplotlib/patches.py", line 
> 275, in draw
> rgbFace = colors.colorConverter.to_rgb(self._facecolor)
> File "/usr/lib64/python2.5/site-packages/matplotlib/colors.py", line 
> 280, in to_rgb
> raise ValueError('to_rgb: Invalid rgb arg "%s"\n%s' % (str(arg), exc))
> ValueError: to_rgb: Invalid rgb arg "0,490196078431"
> }}}
> 
From: David J S. <str...@ll...> - 2008年09月30日 15:30:58
Folks,
I sent this msg last Friday but it never appeared in the digest...
I am trying to install, in a private 'space', 0.98.3 on a linux 
x86-64 scientific cluster on which I am not the admin. tcl/tk is 
indeed installed, and I know where they are. matplotlib cannot find 
them. When running 'python setup.py build', tclConfig.sh and 
tkConfig.sh are on the path.
It seems tcl/tk detection is a persistent issue, from searching the 
web. My head hurts right now on this, so I hope there's some kind of 
an answer.
Some output:
> python setup.py build
============================================================================
BUILDING MATPLOTLIB
 matplotlib: 0.98.3
 python: 2.5.2 (r252:60911, Sep 25 2008, 16:58:03) [GCC
 4.1.2 20071124 (Red Hat 4.1.2-38)]
 platform: linux2
REQUIRED DEPENDENCIES
 numpy: 1.1.1
 freetype2: 9.10.3
OPTIONAL BACKEND DEPENDENCIES
 libpng: 1.2.10
 Tkinter: Tkinter: 50704, Tk: 8.4, Tcl: 8.4
 * Guessing the library and include directories for
 * Tcl and Tk because the tclConfig.sh and
 * tkConfig.sh could not be found and/or parsed.
 Gtk+: no
 * Building for Gtk+ requires pygtk; you must be able
 * to "import gtk" in your build/install environment
 Qt: no
 Qt4: no
 Cairo: no
From: John H. <jd...@gm...> - 2008年09月30日 11:24:19
On Tue, Sep 30, 2008 at 6:00 AM, Antonio Gonzalez <ja...@ca...> wrote:
> Hello,
>
> Running the latest mpl (svn 6134), 'fill_between.py' from the examples
> directory fails:
>
> File "fill_between.py", line 2, in <module>
> import matplotlib.numerical_methods as numerical_methods
> ImportError: No module named numerical_methods
Thanks Antonio,
This is now fixed in svn 6134.
JDH
From: Antonio G. <ja...@ca...> - 2008年09月30日 11:00:20
Hello,
Running the latest mpl (svn 6134), 'fill_between.py' from the examples 
directory fails:
File "fill_between.py", line 2, in <module>
 import matplotlib.numerical_methods as numerical_methods
ImportError: No module named numerical_methods
Regards,
Antonio
From: Thomas G. <hv...@tb...> - 2008年09月30日 10:31:46
Hi,
this snippet works if there are more (or less) elements in the menMeans 
tuple. If
there are three, it does not work since the bar command thinks the three
element tuple is a tuple of rgb values. But it is a (r, g, b) tuple.
I think it is a bug. Should I create a ticket?
I use 0.98.3
I helped myself by using rgb2hex. But somehow this is not a good solution.
Maybe colorConverter.to_rgb should return a subclass of tuple called 
'ColorTuple'.
This way it would be easier to distinguish between a tuple of rgb values 
and a rgb color tuple.
{{{
#!/usr/bin/env python
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
cmap=matplotlib.cm.jet
menMeans = (20, 35, 30) # Does work if there are more or less then three 
elements in the tuple
N=len(menMeans)
ind = np.arange(N) # the x locations for the groups
width = 0.35 # the width of the bars
plt.subplot(111)
color=matplotlib.colors.colorConverter.to_rgb(cmap(0.5))
rects1 = plt.bar(ind, menMeans, width, color=color)
plt.show()
}}}
{{{
Traceback (most recent call last):
 File 
"/usr/lib64/python2.5/site-packages/matplotlib/backends/backend_gtk.py", 
line 333, in expose_event
 self._render_figure(self._pixmap, w, h)
 File 
"/usr/lib64/python2.5/site-packages/matplotlib/backends/backend_gtkagg.py", 
line 75, in _render_figure
 FigureCanvasAgg.draw(self)
 File 
"/usr/lib64/python2.5/site-packages/matplotlib/backends/backend_agg.py", 
line 261, in draw
 self.figure.draw(self.renderer)
 File "/usr/lib64/python2.5/site-packages/matplotlib/figure.py", line 
759, in draw
 for a in self.axes: a.draw(renderer)
 File "/usr/lib64/python2.5/site-packages/matplotlib/axes.py", line 
1523, in draw
 a.draw(renderer)
 File "/usr/lib64/python2.5/site-packages/matplotlib/patches.py", line 
275, in draw
 rgbFace = colors.colorConverter.to_rgb(self._facecolor)
 File "/usr/lib64/python2.5/site-packages/matplotlib/colors.py", line 
280, in to_rgb
 raise ValueError('to_rgb: Invalid rgb arg "%s"\n%s' % (str(arg), exc))
ValueError: to_rgb: Invalid rgb arg "0,490196078431"
}}}
-- 
Thomas Guettler, http://www.thomas-guettler.de/
E-Mail: guettli (*) thomas-guettler + de
From: Peter S. <pz...@dc...> - 2008年09月30日 09:07:20
Attachments: output.png
Friedrich Hagedorn wrote:
> Yes as *.png. I think it's convinient to understand your problem in a
> few seconds.
> 
The bottom two subplots of the attached.
Peter
I feel like I must be missing something: below is some "minimal sample" code which reproduces a "problem" I'm seeing in a more complicated situation:
import matplotlib as MPL
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
for DPI in range(100,201,25):
 fig = Figure(figsize=(12,9), 
 dpi=DPI, 
 frameon=False)
 canvas = FigureCanvas(fig)
 nx, ny = (N.uint16(12*DPI), N.uint16(9*DPI))
 temp = N.indices((ny, nx), N.uint8)
 result = N.zeros_like(temp[0])
 result[:ny/2,:] = temp[0,:ny/2,:] + temp[1,:ny/2,:]
 result[ny/2:,:] = temp[0,ny/2:,:] - temp[1,ny/2:,:]
 fig.figimage(result/N.float(N.max(result)))
 canvas.print_figure("test"+str(DPI)+"dpi.png")
Attached are the results on my computer (see usage details below). Granted, I'm increasing the resolution each iteration, but I'm always placing the "cut" in the figure half way through - why does the cut keep creeping up 'til it disappears?
Usage details: matplotlib version=? (I forget how to get that), numpy version = 1.0.4, Python version = 2.5.2, OS = Windows XPProSP3, 504 MB RAM w/ "Physical Address Extension" (whatever that means).
DG
PS: If the figures don't come through and for some reason my code doesn't work on your platform or doesn't reproduce the problem, email me and I'll email you the figures directly.
 

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