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

Showing 8 results of 8

From: Jeff W. <jef...@no...> - 2012年08月20日 22:29:14
On 8/20/12 4:41 PM, Scott Henderson wrote:
> I'm having trouble with transform_scalar() and imshow() with basemap. 
> Essential I have data from satellite tracks that are either smaller or 
> larger than the map extent, so I don't want to use Basemap.imshow() 
> which sets the 'extent' keyword automatically.
>
> I tried following the following suggestion, but I can't get things to 
> line up..
> http://comments.gmane.org/gmane.comp.python.matplotlib.general/25085
>
> I suspect I've done something wrong in the code below?:
Scott: If you use the pcolormesh or contourf Basemap methods (instead 
of imshow), you can specify the map projection coordinates of your data 
and it will be plotted correctly (whether or not it covers the whole map 
projection region).
-Jeff
>
>
> # -------------------------------
> from mpl_toolkits.basemap import Basemap
> import matplotlib.pyplot as plt
>
> LL = (-68, -26)
> UR = (-66, -21)
> bmap = Basemap(projection='merc',
> llcrnrlat=LL[1],
> urcrnrlat=UR[1],
> llcrnrlon=LL[0],
> urcrnrlon=UR[0],
> resolution='i',
> suppress_ticks=False,
> ax=ax)
> bmap.drawcountries(linewidth=1)
>
> # Overlay image with extents that don't match map boundaries
> nLon, nLat = image.shape
> LL = (-69.915, -31.161)
> UR = (-65.075, -17.334)
> dy = -0.006666664
> lats = UR[1] + dy * np.arange(nLat)
> extent = (LL[0], UR[0], LL[1], UR[1])
> nx = nLon; ny = nLat
> image_xy = bmap.transform_scalar(image, lons, lats[::-1], nx, ny)
> x, y = bmap(extent[:2],extent[2:])
> extent_xy = (x[0], x[1], y[0], y[1])
> im = plt.imshow(image_xy, extent=extent_xy)
>
>
>
> -- 
> ---------------
> Scott T. Henderson
> http://www.geo.cornell.edu/eas/gstudent/sth54/contact.html
>
>
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
>
>
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
-- 
Jeffrey S. Whitaker Phone : (303)497-6313
Meteorologist FAX : (303)497-6449
NOAA/OAR/PSD R/PSD1 Email : Jef...@no...
325 Broadway Office : Skaggs Research Cntr 1D-113
Boulder, CO, USA 80303-3328 Web : http://tinyurl.com/5telg
From: Virgil S. <vs...@it...> - 2012年08月20日 22:12:39
I have been generating boxplots with matplotlib 1.1.0 and the plots look 
great.
How can I find the median, fliers, etc. that are used for the boxplots? 
In general, where can I find documentation on how to get these data from 
a boxplot?
Best regards!
[Using matplotlib 1.1.0 with Python 2.7.3 on a Windows Vista 32-bit 
platform]
From: Scott H. <st...@co...> - 2012年08月20日 21:34:38
I'm having trouble with transform_scalar() and imshow() with basemap. 
Essential I have data from satellite tracks that are either smaller or 
larger than the map extent, so I don't want to use Basemap.imshow() 
which sets the 'extent' keyword automatically.
I tried following the following suggestion, but I can't get things to 
line up..
http://comments.gmane.org/gmane.comp.python.matplotlib.general/25085
I suspect I've done something wrong in the code below?:
# -------------------------------
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
LL = (-68, -26)
UR = (-66, -21)
bmap = Basemap(projection='merc',
 llcrnrlat=LL[1],
 urcrnrlat=UR[1],
 llcrnrlon=LL[0],
 urcrnrlon=UR[0],
 resolution='i',
 suppress_ticks=False,
 ax=ax)
bmap.drawcountries(linewidth=1)
# Overlay image with extents that don't match map boundaries
nLon, nLat = image.shape
LL = (-69.915, -31.161)
UR = (-65.075, -17.334)
dy = -0.006666664
lats = UR[1] + dy * np.arange(nLat)
extent = (LL[0], UR[0], LL[1], UR[1])
nx = nLon; ny = nLat
image_xy = bmap.transform_scalar(image, lons, lats[::-1], nx, ny)
x, y = bmap(extent[:2],extent[2:])
extent_xy = (x[0], x[1], y[0], y[1])
im = plt.imshow(image_xy, extent=extent_xy)
-- 
---------------
Scott T. Henderson
http://www.geo.cornell.edu/eas/gstudent/sth54/contact.html
From: Michael D. <md...@st...> - 2012年08月20日 18:27:43
Thanks for this. It's been a long-standing bug that text is handled by 
bounding box, but it's been difficult to find a way forward without 
breaking backward compatibility.
I've filed an issue for this here.
https://github.com/matplotlib/matplotlib/issues/1121
It may be, in the long run, that we want to fix the other backends to 
use baselines rather than fixing Cairo to use bounding boxes.
Mike
On 08/20/2012 01:07 PM, Freddie Witherden wrote:
> On 19/08/12 23:48, Freddie Witherden wrote:
>> Hello,
>>
>> Using the Cairo backend with the following snippet:
>>
>> from matplotlib.figure import Figure
>> from matplotlib.artist import setp
>> from matplotlib.backends.backend_agg import FigureCanvasAgg
>> from matplotlib.backends.backend_cairo import FigureCanvasCairo
>> import numpy as np
>>
>> fig = Figure()
>> ax1 = fig.add_axes([0.1, 0.1, 0.8, 0.8])
>> x = np.arange(0, 10, 0.2)
>>
>> ax1.plot(x, np.sin(x))
>> ax1.xaxis.set_ticklabels(['Apr', 'Jul', 'Oct', '\'12', 'Apr', 'Jul'])
>> setp(ax1.yaxis.get_ticklabels(), visible=False)
>>
>> FigureCanvasCairo(fig).print_figure('test.png')
>>
>>
>> Results in the x-axis tick labels being significantly displaced.
>> Specifically, "Oct" and "'12" are positioned far closer to the axis than
>> either "Apr" or "Jul".
>>
>> With the AGG backend all of the labels are roughly aligned to the
>> baseline of the font -- give or take a pixel.
>>
>> I have observed this on a Gentoo and Debian system, both running 1.1.1,
>> albeit with different default fonts.
>>
>> Although I am not completely sure it appears as if a label contains a
>> glyph that extends below the baseline, e.g. 'p' or 'J', that the label
>> is forced away from the axis.
>>
>> Can anyone suggest a workaround for this (or explain where I am going
>> wrong)?
> I have been looking into this issue today and it /appears/ to be because
> the Cairo backend -- or more precisely -- cairo::show_text method takes
> a y-coordinate relative to the baseline. This makes sense given that
> the descent of a font is a well-defined concept in Cairo (and can be
> extracted via the font_extents method). However, as far as I can tell,
> matplotlib expects the draw_text method to provide an absolute y-coordinate.
>
> The result is that any text with a descender is pushed downwards
> (assuming a default rotation angle). This can be visualized by
>
> setp(ax1.xaxis.get_ticklabels(), backgroundcolor='r')
>
> The solution is to have the draw_text method account for any descenders.
> After a bit of juggling the relevant portion of draw_text becomes:
>
> ctx = gc.ctx
> ctx.new_path()
> #ctx.move_to (x, y)
> ctx.select_font_face (prop.get_name(),
> self.fontangles [prop.get_style()],
> self.fontweights[prop.get_weight()])
>
> size = prop.get_size_in_points() * self.dpi / 72.0
> ctx.set_font_size(size)
>
> y_bearing, w, h = ctx.text_extents(s.encode("utf-8"))[1:4]
> ctx.move_to(x, y - (h + y_bearing))
>
> ctx.save()
> if angle:
> ctx.rotate (-angle * np.pi / 180)
> #ctx.set_font_size (size)
> ctx.show_text (s.encode("utf-8"))
> ctx.restore()
>
> where commented lines highlight modifications (specifically, the
> movement of the set_font_size and move_to calls). In my limited testing
> this fixes the aforementioned issues. Discrepancies between baselines
> are now limited to +/- 1px (the same as with the AGG backend).
> Eliminating these one pixel misalignments is rather difficult so long as
> text rendering is performed relative to the bounding box as opposed to a
> baseline.
>
> Regards, Freddie.
>
>
>
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
>
>
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
From: Freddie W. <fr...@wi...> - 2012年08月20日 17:08:02
Attachments: signature.asc
On 19/08/12 23:48, Freddie Witherden wrote:
> Hello,
> 
> Using the Cairo backend with the following snippet:
> 
> from matplotlib.figure import Figure
> from matplotlib.artist import setp
> from matplotlib.backends.backend_agg import FigureCanvasAgg
> from matplotlib.backends.backend_cairo import FigureCanvasCairo
> import numpy as np
> 
> fig = Figure()
> ax1 = fig.add_axes([0.1, 0.1, 0.8, 0.8])
> x = np.arange(0, 10, 0.2)
> 
> ax1.plot(x, np.sin(x))
> ax1.xaxis.set_ticklabels(['Apr', 'Jul', 'Oct', '\'12', 'Apr', 'Jul'])
> setp(ax1.yaxis.get_ticklabels(), visible=False)
> 
> FigureCanvasCairo(fig).print_figure('test.png')
> 
> 
> Results in the x-axis tick labels being significantly displaced.
> Specifically, "Oct" and "'12" are positioned far closer to the axis than
> either "Apr" or "Jul".
> 
> With the AGG backend all of the labels are roughly aligned to the
> baseline of the font -- give or take a pixel.
> 
> I have observed this on a Gentoo and Debian system, both running 1.1.1,
> albeit with different default fonts.
> 
> Although I am not completely sure it appears as if a label contains a
> glyph that extends below the baseline, e.g. 'p' or 'J', that the label
> is forced away from the axis.
> 
> Can anyone suggest a workaround for this (or explain where I am going
> wrong)?
I have been looking into this issue today and it /appears/ to be because
the Cairo backend -- or more precisely -- cairo::show_text method takes
a y-coordinate relative to the baseline. This makes sense given that
the descent of a font is a well-defined concept in Cairo (and can be
extracted via the font_extents method). However, as far as I can tell,
matplotlib expects the draw_text method to provide an absolute y-coordinate.
The result is that any text with a descender is pushed downwards
(assuming a default rotation angle). This can be visualized by
setp(ax1.xaxis.get_ticklabels(), backgroundcolor='r')
The solution is to have the draw_text method account for any descenders.
 After a bit of juggling the relevant portion of draw_text becomes:
 ctx = gc.ctx
 ctx.new_path()
 #ctx.move_to (x, y)
 ctx.select_font_face (prop.get_name(),
 self.fontangles [prop.get_style()],
 self.fontweights[prop.get_weight()])
 size = prop.get_size_in_points() * self.dpi / 72.0
 ctx.set_font_size(size)
 y_bearing, w, h = ctx.text_extents(s.encode("utf-8"))[1:4]
 ctx.move_to(x, y - (h + y_bearing))
 ctx.save()
 if angle:
 ctx.rotate (-angle * np.pi / 180)
 #ctx.set_font_size (size)
 ctx.show_text (s.encode("utf-8"))
 ctx.restore()
where commented lines highlight modifications (specifically, the
movement of the set_font_size and move_to calls). In my limited testing
this fixes the aforementioned issues. Discrepancies between baselines
are now limited to +/- 1px (the same as with the AGG backend).
Eliminating these one pixel misalignments is rather difficult so long as
text rendering is performed relative to the bounding box as opposed to a
baseline.
Regards, Freddie.
From: ilan b. <iba...@ya...> - 2012年08月20日 14:58:53
<html style="direction: ltr;">
 <head>
 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
 <style type="text/css">body p { margin-bottom: 0cm; margin-top: 0pt; } </style>
 </head>
 <body style="direction: ltr;"
 bidimailui-detected-decoding-type="latin-charset" bgcolor="#FFFFFF"
 text="#000000">
 <pre wrap="">Hello
I have set rcParams['axes.color_cycle'] = ['r','Blue',&nbsp;&nbsp;&nbsp; 'g', 'm','c','k',&nbsp;&nbsp;&nbsp; 'Tomato... ] to a long list of colors.
Later in the program I have many figure() commands floowed by plot commands.
The color sequence does not repateat itself for each new figure
How do I reset the sequence?
Thanks
Ilan</pre>
 </body>
</html>
From: darkside <in....@gm...> - 2012年08月20日 13:50:55
Thank you for your help, but I have already read this link.
I am using zoomed_inset_axes, but the default position overlaps the yticks
and the parent axe ticks, so I am trying:
axins = zoomed_inset_axes(ax,
3,bbox_to_anchor(0.5,1),bbox_transform=ax.figure.transFigure, loc=2)
but it doesn't work.
I have also tried:
box = axins.get_position()
axins.set_position([box.x0+0.5, box.y0,box.width, box.height])
and the position is changed (doing a print I check the differences), but
not in the plot.
I guess I am doing something wrong, but I can't tell.
Any help would be really useful.
Cheers!
Illa
2012年8月9日 Benjamin Root <ben...@ou...>
>
> On Wed, Aug 8, 2012 at 7:03 AM, darkside <in....@gm...>wrote:
>
>>
>>
>> ---------- Forwarded message ----------
>> From: darkside <in....@gm...>
>> Date: 2012年8月2日
>> Subject: Re: [Matplotlib-users] zoomed in detail box
>> To: Jae-Joon Lee <lee...@gm...>
>>
>>
>> Hi everyone!
>>
>> I'm also trying to do a detailed zoomed area of my plot, but I can't
>> manage to put the box in the position I want, bbox_to_anchor didn't work in
>> my case:
>>
>> axins =
>> zoomed_inset_axes(ax,3,loc=2,bbox_to_anchor=(0,0,0.5,0.5),bbox_transform=ax.transAxes)
>>
>> This bbox_to_anchor tuple is just an example. I only want to move the
>> zoomed box a little to the right, since the ticklabels overlap.
>>
>> Any idea?
>>
>> I really appreciate your help!
>>
>>
> Is this what you are looking for?
>
>
> http://matplotlib.sourceforge.net/mpl_toolkits/axes_grid/users/overview.html#insetlocator
>
> Cheers!
> Ben Root
>
>
I've filed an issue for this here:
https://github.com/matplotlib/matplotlib/issues/1110
Mike
On 08/19/2012 05:55 PM, Eric Firing wrote:
> On 2012年08月19日 10:31 AM, Christopher Graves wrote:
>> Hi
>>
>>
>> I do not think this is the expected behavior. First, run the following:
>>
>>
>> from pylab import *
>>
>> plot([0,3],[0.2,0.7])
>>
>> ax1 = gca()
>>
>> ax1.set_yscale('log')
>>
>> gca().yaxis.set_major_formatter(FormatStrFormatter('$%g$'))
>>
>> #ax2 = ax1.twiny()
>>
>> #ax2.set_xlim(ax1.get_xlim())
>>
>> show()
>>
>>
>> You will see that the y-axis is log10rithmic and axis labels are 0.1 and
>> 1 rather than 10^-1 and 10^0, due to the use of set_major_formatter().
>>
>>
>> Now uncomment the 2 commented lines and run it again. It seems that upon
>> applying a twiny(), the set_major_formatter() action is removed and the
>> y-axis is now displayed as 10^-1 and 10^0. Or more likely, the y-axis is
>> "overwritten" with a new y-axis present in ax2. One can add another
>> gca().yaxis.set_major_formatter(FormatStrFormatter('$%g$')) before the
>> show() and it works as intended. However, it seems like unexpected
>> behavior to "lose" the formatting when twinning the axis to add a
>> secondary x-axis. Any advice or agreement that this could be a bug?
> Yes, I think this is a bug.
>
> Eric
>
>>
>> Best,
>>
>> Chris
>>
>
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Showing 8 results of 8

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