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 10 results of 10

From: Phil R. <pj...@uc...> - 2005年08月22日 23:44:59
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
From: Vinj V. <vin...@ya...> - 2005年08月22日 23:14:16
I'm getting the following error:
 from matplotlib.pylab import *
 File
"/usr/lib/python2.4/site-packages/matplotlib/pylab.py",
line 709, in ?
 figimage.__doc__ = Figure.figimage.__doc__ + """
 TypeError: unsupported operand type(s) for +:
'NoneType' and 'str'
"
Any ideas what it might be and how I can get around
it?
Thanks,
VJ
From: Eric F. <ef...@ha...> - 2005年08月22日 22:55:31
(from phil:)
> I want to arrange the colorbar so that a very small number of colors
> are displayed rather than the "continuous shading" that most of the
> example plots are using. This lets viewers of the figure unambiguously
> identify precisely the range of value in the filled region.
(from Jeff:)
> Note that that contourf is using 10 discrete colors to represent the 
> data, but the colorbar is showing all 256 colors in the colormap. Do 
> you know of any way to force the colorbar to show only those colors
> that contourf uses?
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
From: David C. <dc...@ce...> - 2005年08月22日 20:56:53
Thanks for the suggestion I've now got lines through the origin. Do you =
know of anyway to add tick marks and labels to those lines?=20
David
>>> Vidar Gundersen <vid...@37...> 08/22/05 8:52 PM >>>
=3D=3D=3D=3D=3D Original message from David Cameron | 2005年8月22日:
> How can I create a plot with x and y axis (inc ticks and
> labels) through the origin (0,0)?
this is very similar to what i wanted to do in a recent
post, see the thread titled "gridlines at 0,0 only",
http://sourceforge.net/mailarchive/message.php?msg_id=3D12231581
the short version of it:
 props =3D dict(color=3D"black", linestyle=3D"--", linewidth=3D1)
 axvline(x=3D0, **props)=20
 axhline(y=3D0, **props)
thanks for asking, it would be a nice feature to have this
as a stand-alone option for plot() or grid() commands.
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle =
Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Matplotlib-users mailing list
Mat...@li...
https://lists.sourceforge.net/lists/listinfo/matplotlib-users
From: Vidar G. <vid...@37...> - 2005年08月22日 19:51:57
===== Original message from David Cameron | 2005年8月22日:
> How can I create a plot with x and y axis (inc ticks and
> labels) through the origin (0,0)?
this is very similar to what i wanted to do in a recent
post, see the thread titled "gridlines at 0,0 only",
http://sourceforge.net/mailarchive/message.php?msg_id=12231581
the short version of it:
 props = dict(color="black", linestyle="--", linewidth=1)
 axvline(x=0, **props) 
 axhline(y=0, **props)
thanks for asking, it would be a nice feature to have this
as a stand-alone option for plot() or grid() commands.
From: David C. <dc...@ce...> - 2005年08月22日 18:48:01
Hello,=20
Thanks very much for matplotlib its fast becoming the main tool I use for =
plotting!
I'm fairly new to matplotlib so apologies if this seems like an obvious =
question. I'm plotting a fairly standard scatter plot using plot.=20
something like....=20
plot(x,y,'kx')=20
and my data is normalised so ([-1,1],[-1,1]).=20
How can I create a plot with x and y axis (inc ticks and labels) through =
the origin (0,0)?
Many thanks for any help
David=20
Dr David Cameron
Centre for Ecology and Hydrology - Edinburgh
Bush Estate
Penicuik, Midlothian=20
EH26 0QB, UK
Tel: +44/0 131 445-8577 Fax: -3943
Email: dc...@ce...
From: Jeff W. <js...@fa...> - 2005年08月22日 17:42:23
Phil Rasch wrote:
>I need help for what ought to be a pretty simple task. I am a beginner
>to matplotlib, and have only written a few hundred lines of python in
>my life so please take it easy on me.
>
>I want to arrange the colorbar so that a very small number of colors
>are displayed rather than the "continuous shading" that most of the
>example plots are using. This lets viewers of the figure unambiguously
>identify precisely the range of value in the filled region.
>
>To demonstrate the problem I have modified the contourf_demo.py
>example script.
>
>Here is how I tried to set it up.
>
>I specify 5 contour levels. The enpoint contour levels actually
>exceed the max and min values of the field. I expect 4 filled colors to
>appear on the figure, and 3 red contour lines,. There should be 4 colors
>on the colorbar. The endpoint of the range plotted on the colorbar
>should be -0.2 and 0.1, with a color change every 0.1 (eg 4 colors).
>No matter what I try (varying number of filled regions and varying
>clim) something is wrong.
>
>I have tried everything I can think of to force this and it isnt
>working. Can some kind sole suggest the fix?
>
>Here is the script
>
>Thanks
>
>Phil
>--------------------------------------------------------
>#!/usr/bin/env python
>from pylab import *
>import matplotlib.numerix.ma as ma
>origin = 'lower'
>#origin = 'upper'
>
>delta = 0.03
>x = y = arange(-3.0, 3.01, delta)
>X, Y = meshgrid(x, y)
>Z1 = bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0)
>Z2 = bivariate_normal(X, Y, 1.5, 0.5, 1, 1)
>Z = Z1 - Z2
>ZZ = reshape(Z,[1,len(Z)*len(Z)])
>print "rangeof Z", min(min(ZZ)), max(max(ZZ))
>
>levs = [-.2,-.1,0.,0.1,0.2];
>cmap = cm.get_cmap('bone', len(levs)-1) 
>
>levels, colls = contourf(X, Y, Z, levs, 
> cmap=cmap,
> origin=origin)
>print levels
>levs2, colls2 = contour(X, Y, Z, levels,
> colors = 'r',linewidths = 2,
> origin=origin,
> hold='on')
>
>
>cb = colorbar(tickfmt='%1.3f')
>clim(levs[0],levs[-1])
>#savefig('contourf_demo')
>show()
>
> 
>
Phil: I've often wanted to do this too. Here's my attempt at creating 
a custom colormap with 16 linear segments using 
LinearSegmentedColormap. The contour plot looks fine, but the colorbar 
looks wrong. Maybe someone on the list can see what I did wrong.
-Jeff
from numarray import *
from pylab import *
def make_colormap(cmapname,rgb):
 """create matplotlib cmap instance from list of rgb tuples (0-255)"""
 x = []; r = []; g = []; b = []
 for n,xrgb in enumerate(rgb):
 if len(xrgb) > 3: # x is specified.
 x.append(float(xrgb[0]))
 r.append(float(xrgb[1]))
 g.append(float(xrgb[2]))
 b.append(float(xrgb[3]))
 else: # assume linear range for x.
 x.append(float(n+1))
 r.append(float(xrgb[0]))
 g.append(float(xrgb[1]))
 b.append(float(xrgb[2]))
 x = array( x , Float)
 r = array( r , Float)/255.
 g = array( g , Float)/255.
 b = array( b , Float)/255.
 xNorm = (x - x[0])/(x[-1] - x[0])
 red = []
 blue = []
 green = []
 for i in range(len(x)):
 red.append([xNorm[i],r[i],r[i]])
 green.append([xNorm[i],g[i],g[i]])
 blue.append([xNorm[i],b[i],b[i]])
 cdict = {'red':red, 'green':green, 'blue':blue}
 return cm.colors.LinearSegmentedColormap(cmapname,cdict,N=len(r))
def func3(x,y):
 return (1- x/2 + x**5 + y**3)*exp(-x**2-y**2)
if __name__ == '__main__':
 dx, dy = 0.05, 0.05
 x = arange(-3.0, 3.0001, dx)
 y = arange(-3.0, 3.0001, dy)
 X,Y = meshgrid(x, y)
 Z = func3(X, Y)
 Z = Z - min(ravel(Z))
 Z = Z - 0.5*max(ravel(Z))
 # Green to Magenta in 16 steps from
 # http://geography.uoregon.edu/datagraphics/color_scales.htm
 rgb = [
 ( 0, 80, 0),
 ( 0, 134, 0),
 ( 0, 187, 0),
 ( 0, 241, 0),
 ( 80, 255, 80),
 (134, 255, 134),
 (187, 255, 187),
 (255, 255, 255),
 (255, 241, 255),
 (255, 187, 255),
 (255, 134, 255),
 (255, 80, 255),
 (241, 0, 241),
 (187, 0, 187),
 (134, 0, 134),
 ( 80, 0, 80)]
 cmapname = 'GrMg_16'
 colormap = make_colormap(cmapname,rgb)
 l,c = contour (X, Y, Z, 15, linewidths=0.5,colors='k')
 l,c = contourf(X, Y, Z, 15, cmap=colormap,colors=None)
 colorbar() # segments on colorbar are not linear?
 title(cmapname)
 axis([-3,3,-3,3])
 show()
-- 
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: Darren D. <dd...@co...> - 2005年08月22日 13:24:14
On Monday 22 August 2005 5:07 am, Eric Emsellem wrote:
> Hi,
>
> the problem I mentioned regarding "stupid" Bounding Boxes in PS file in
> my last post was in fact already known:
>
> - when using the option *text.usetex=True* in my matplotlibrc I should
> have checked which version of ghostscript I was using since that option
> requires to have a recent one. I had 7.07, and now switched to 8.51
> after downloading/compiling the version available on the web: my problem
> is solved and my ps/eps files created with a savefig() in matplotlib
> look great.
>
> Thanks a lot to Darren Dale for pointing out this to me, and sorry for
> the trouble I caused. Hoping this post will help future beginners like me!
No need to apologize. When I get a chance, I'll see if I can get MPL to check 
the ghostscript version and issue a warning if necessary.
Darren
From: Eric E. <ems...@ob...> - 2005年08月22日 09:09:04
Hi,
the problem I mentioned regarding "stupid" Bounding Boxes in PS file in 
my last post was in fact already known:
- when using the option *text.usetex=True* in my matplotlibrc I should 
have checked which version of ghostscript I was using since that option 
requires to have a recent one. I had 7.07, and now switched to 8.51 
after downloading/compiling the version available on the web: my problem 
is solved and my ps/eps files created with a savefig() in matplotlib 
look great.
Thanks a lot to Darren Dale for pointing out this to me, and sorry for 
the trouble I caused. Hoping this post will help future beginners like me!
Cheers
Eric
-- 
===============================================================
Observatoire de Lyon ems...@ob...
9 av. Charles-Andre tel: +33 4 78 86 83 84
69561 Saint-Genis Laval Cedex fax: +33 4 78 86 83 86
France http://www-obs.univ-lyon1.fr/eric.emsellem
===============================================================
From: Phil R. <pj...@uc...> - 2005年08月22日 01:07:14
I need help for what ought to be a pretty simple task. I am a beginner
to matplotlib, and have only written a few hundred lines of python in
my life so please take it easy on me.
I want to arrange the colorbar so that a very small number of colors
are displayed rather than the "continuous shading" that most of the
example plots are using. This lets viewers of the figure unambiguously
identify precisely the range of value in the filled region.
To demonstrate the problem I have modified the contourf_demo.py
example script.
Here is how I tried to set it up.
I specify 5 contour levels. The enpoint contour levels actually
exceed the max and min values of the field. I expect 4 filled colors to
appear on the figure, and 3 red contour lines,. There should be 4 colors
on the colorbar. The endpoint of the range plotted on the colorbar
should be -0.2 and 0.1, with a color change every 0.1 (eg 4 colors).
No matter what I try (varying number of filled regions and varying
clim) something is wrong.
I have tried everything I can think of to force this and it isnt
working. Can some kind sole suggest the fix?
Here is the script
Thanks
Phil
--------------------------------------------------------
#!/usr/bin/env python
from pylab import *
import matplotlib.numerix.ma as ma
origin = 'lower'
#origin = 'upper'
delta = 0.03
x = y = arange(-3.0, 3.01, delta)
X, Y = meshgrid(x, y)
Z1 = bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0)
Z2 = bivariate_normal(X, Y, 1.5, 0.5, 1, 1)
Z = Z1 - Z2
ZZ = reshape(Z,[1,len(Z)*len(Z)])
print "rangeof Z", min(min(ZZ)), max(max(ZZ))
levs = [-.2,-.1,0.,0.1,0.2];
cmap = cm.get_cmap('bone', len(levs)-1) 
levels, colls = contourf(X, Y, Z, levs, 
 cmap=cmap,
 origin=origin)
print levels
levs2, colls2 = contour(X, Y, Z, levels,
 colors = 'r',linewidths = 2,
 origin=origin,
 hold='on')
cb = colorbar(tickfmt='%1.3f')
clim(levs[0],levs[-1])
#savefig('contourf_demo')
show()

Showing 10 results of 10

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