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

From: Freddie W. <fr...@wi...> - 2012年08月19日 22:49:05
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)?
Regards, Freddie.
From: Phil E. <pel...@gm...> - 2012年08月19日 22:20:52
I'm not aware of an rc param for this. The relevant github issue:
https://github.com/matplotlib/matplotlib/issues/461
Regards,
Phil
On 19 August 2012 21:27, Christopher Graves <chr...@gm...>wrote:
> Using matplotlib 1.1.1.
> If one runs the following code:
>
> from pylab import *
>
> plot([19.185,19.187],[0.0009,0.0011],'b.')
>
> show()
>
> The x-axis is labelled 0.0005, 0.0010, 0.0015 etc +1.9184e1
>
> This is unreadable and does not seem like a good default behavior!
>
> One can add
> gca().xaxis.set_major_formatter(FormatStrFormatter('$%g$'))
> before "show()"
> to obtain an x-axis labelled 19.1845, 19.185, 19.1855, etc.
>
> Can one change the default label formatting behavior with a matplotlib rc?
> However, I would not want to e.g. override the 10^-3, 10^-2, etc when using
> log axes.
>
> Best regards,
> 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
>
>
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
>
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?
Best,
Chris
From: Christopher G. <chr...@gm...> - 2012年08月19日 20:28:10
Using matplotlib 1.1.1.
If one runs the following code:
 from pylab import *
plot([19.185,19.187],[0.0009,0.0011],'b.')
show()
The x-axis is labelled 0.0005, 0.0010, 0.0015 etc +1.9184e1
This is unreadable and does not seem like a good default behavior!
One can add
gca().xaxis.set_major_formatter(FormatStrFormatter('$%g$'))
before "show()"
to obtain an x-axis labelled 19.1845, 19.185, 19.1855, etc.
Can one change the default label formatting behavior with a matplotlib rc?
However, I would not want to e.g. override the 10^-3, 10^-2, etc when using
log axes.
Best regards,
Chris
From: Goyo <goy...@gm...> - 2012年08月19日 18:13:03
2012年8月19日 Peter Combs <pco...@gm...>:
> Hi all,
> I'm trying to have a Text object with a fancy box, as in this example:
> http://matplotlib.sourceforge.net/mpl_examples/pylab_examples/fancybox_demo2.py
> . However, the key difference is that I want to have the box (in my case,
> I'm interested in an RArrow) be a specified width (in units of the plot),
> rather than just fitting it to the text I've given (crude ascii art below).
> The following seems not to work:
>
>
> ax = gca()
> txtobj = ax.text(0, -.1 * yrange, 'text',
> bbox=dict(boxstyle='rarrow'))
> txtobj.get_bbox_patch().set_
> width(SIZE_IM_INTERESTED_IN)
> draw_if_interactive()
>
> It seems like draw()ing the text object will reset the size of the BBox...
> Any idea how to fix this? At the moment, I'm experimenting with continually
> drawing, polling the get_width() method, and when it's too small, adding in
> spaces around the text field, but that seems both not to work reliably, and
> be an incredibly boneheaded way to go about it.
Not ideal but better:
from pyplot import *
subplot(111)
text(0.1, 0.3, 'XXXXXXXXXXXXXXX', alpha=0, bbox=dict(boxstyle='rarrow'))
text(0.1, 0.3, 'short')
text(0.1, 0.6, 'XXXXXXXXXXXXXXX', alpha=0, bbox=dict(boxstyle='rarrow'))
text(0.1, 0.6, 'looooooooooong')
show()
Goyo
From: Freddie W. <fr...@wi...> - 2012年08月19日 17:12:08
Hello,
With matplotlib 1.1.1 on Gentoo I have been observing some strange
behaviour relating to ax.legend(frameon=False) and
print_figure(bbox_inches='tight'):
from matplotlib.figure import Figure
from matplotlib.artist import setp
from matplotlib.backends.backend_cairo import FigureCanvasCairo
import numpy as np
fig = Figure()
ax1 = fig.add_axes([0.1, 0.5, 0.8, 0.4])
ax2 = fig.add_axes([0.1, 0.1, 0.8, 0.4], sharex=ax1)
x = np.arange(0, 10, 0.2)
for ax, y in zip((ax1, ax2), (np.cos(x), np.sin(x))):
 ax.plot(x, y, label='A line')
 ax.spines['left'].set_visible(False)
 ax.yaxis.tick_right()
ax1.set_xlim((1,9))
ax1.legend(loc='upper left', frameon=False)
setp(ax1.xaxis.get_ticklabels(), visible=False)
FigureCanvasCairo(fig).print_figure('test.png', bbox_inches='tight')
On my system the resulting image has a large left margin. However, if I
change frameon to True then the left margin is cropped (as expected).
Hence setting frameon=False for a legend appears to break tight bounding
boxes.
A similar situation occurs if legend().draw_frame(False) is used to hide
the legend frame. My current work around is to use
legend().get_frame().set_visible(False) which results in the correct
bounding box.
I have also reproduced this using the AGG backend.
Regards, Freddie.
P.S. On an unrelated note are there any more performant alternatives to
bbox_inches='tight'? It almost doubles the rendering time of some more
complex plots.
From: Daniel H. <dh...@gm...> - 2012年08月19日 17:07:46
Another, very hacky but quick way to do this, is to put spaces around your
text until the arrow is the size you desire:
" your text "
and if you want the arrow to expand upward and downward, put in return
characters (I told you it was crude ;))
On Sun, Aug 19, 2012 at 2:41 AM, Peter Combs <pco...@gm...> wrote:
> Hi all,
> I'm trying to have a Text object with a fancy box, as in this example:
> http://matplotlib.sourceforge.net/mpl_examples/pylab_examples/fancybox_demo2.py. However, the key difference is that I want to have the box (in my case,
> I'm interested in an RArrow) be a specified width (in units of the plot),
> rather than just fitting it to the text I've given (crude ascii art
> below). The following seems not to work:
>
>
> ax = gca()
> txtobj = ax.text(0, -.1 * yrange, 'text',
> bbox=dict(boxstyle='rarrow'))
> txtobj.get_bbox_patch().set_
> width(SIZE_IM_INTERESTED_IN)
> draw_if_interactive()
>
> It seems like draw()ing the text object will reset the size of the BBox...
> Any idea how to fix this? At the moment, I'm experimenting with continually
> drawing, polling the get_width() method, and when it's too small, adding in
> spaces around the text field, but that seems both not to work reliably, and
> be an incredibly boneheaded way to go about it.
>
> I'm using matplotlib v. 1.1.0 if that makes a difference.
>
>
> --------------\
> | text >
> --------------/
> not
> ------\
> | text >
> ------/
>
>
> ------------------------------------------------------------------------------
> 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
>
>
-- 
Daniel Hyams
dh...@gm...
From: Daniel H. <dh...@gm...> - 2012年08月19日 17:05:54
I had to deal with this lately, and there is no current way to do what you
want without patching the MPL source. I have a patch for it, but it does
not behave well enough to use in the general sense....and you have target
the correct code, the lack of flexibility lies in the Text._draw_bbox
function.
I'm afraid that you will have to create the FancyBboxPatch (the arrow)
directly, size it and place it, and then create some text (with no box) to
go inside.
On Sun, Aug 19, 2012 at 2:41 AM, Peter Combs <pco...@gm...> wrote:
> Hi all,
> I'm trying to have a Text object with a fancy box, as in this example:
> http://matplotlib.sourceforge.net/mpl_examples/pylab_examples/fancybox_demo2.py. However, the key difference is that I want to have the box (in my case,
> I'm interested in an RArrow) be a specified width (in units of the plot),
> rather than just fitting it to the text I've given (crude ascii art
> below). The following seems not to work:
>
>
> ax = gca()
> txtobj = ax.text(0, -.1 * yrange, 'text',
> bbox=dict(boxstyle='rarrow'))
> txtobj.get_bbox_patch().set_
> width(SIZE_IM_INTERESTED_IN)
> draw_if_interactive()
>
> It seems like draw()ing the text object will reset the size of the BBox...
> Any idea how to fix this? At the moment, I'm experimenting with continually
> drawing, polling the get_width() method, and when it's too small, adding in
> spaces around the text field, but that seems both not to work reliably, and
> be an incredibly boneheaded way to go about it.
>
> I'm using matplotlib v. 1.1.0 if that makes a difference.
>
>
> --------------\
> | text >
> --------------/
> not
> ------\
> | text >
> ------/
>
>
> ------------------------------------------------------------------------------
> 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
>
>
-- 
Daniel Hyams
dh...@gm...
From: Goyo <goy...@gm...> - 2012年08月19日 16:44:02
2012年8月17日 mgurling <mag...@gm...>:
> I've attached 2.py and 3.py which differ only in how many bars are graphed.
> The "nudge" variable was intended to move the left-most bar away from
> the y-axis.
Better use xlim to move the y-axis away from the bar:
a = [20, 35]
nudge = 0.2
ind = np.arange(2) + nudge
width = 0.30
bar(ind, a, width)
xlim(left=0)
Goyo
From: Peter C. <pco...@gm...> - 2012年08月19日 06:41:16
Hi all,
I'm trying to have a Text object with a fancy box, as in this example:
http://matplotlib.sourceforge.net/mpl_examples/pylab_examples/fancybox_demo2.py.
 However, the key difference is that I want to have the box (in my
case,
I'm interested in an RArrow) be a specified width (in units of the plot),
rather than just fitting it to the text I've given (crude ascii art
below). The following seems not to work:
ax = gca()
txtobj = ax.text(0, -.1 * yrange, 'text',
 bbox=dict(boxstyle='rarrow'))
txtobj.get_bbox_patch().set_
width(SIZE_IM_INTERESTED_IN)
draw_if_interactive()
It seems like draw()ing the text object will reset the size of the BBox...
Any idea how to fix this? At the moment, I'm experimenting with continually
drawing, polling the get_width() method, and when it's too small, adding in
spaces around the text field, but that seems both not to work reliably, and
be an incredibly boneheaded way to go about it.
I'm using matplotlib v. 1.1.0 if that makes a difference.
--------------\
| text >
--------------/
not
------\
| text >
------/
From: reckoner <rec...@gm...> - 2012年08月19日 03:09:37
Hi,
I would like to plot on a monthly calendar for many months going back 
several years. This corresponds to the "month" view on a calendar (like 
in google calendar) as shown here:
 http://www.timeanddate.com/calendar/monthly.html
Thus, I would like to have a tiled graph where every tile on the graph 
corresponds to a particular day in a given month that would be 
color-coded based on other data. The graph would include many months on 
the same chart. So, the entire graph would be tiled by months and then 
sub-tiled by days per month where each day is appropriately colored coded.
Is this possible using matplotlib?
Thanks!

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