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

Showing 9 results of 9

From: Jerzy K. <jer...@un...> - 2012年06月07日 20:15:53
Mark Gurling:
>
> I have two bar graph scripts (good.py and bad.py). 
...
> while in good.py the y-axis ends precisely at -30.0, in bad.py the 
> y-axis ends below -30.0 despite the yticks setting specified on line 
> 20. Is there an explanation for this behavior? How might I remedy this?
What do you really want?
Tony Yu tries to explain the behaviour.
I would suggest using an explicit axis, e.g.
plt.axis([0,0.10,-25,80])
(or between -30 and 100, or 'tight', etc.)
Perhaps you wanted axis('tight') rather than your tight_layout?
Jerzy Karczmarczuk
From: Tony Yu <ts...@gm...> - 2012年06月07日 20:12:15
On Thu, Jun 7, 2012 at 3:44 PM, Mark Gurling <mag...@gm...> wrote:
> I am on Ubuntu 11.10
> matplotlib version 1.1.0
> numpy version 1.5.1
>
> I have two bar graph scripts (good.py and bad.py). Each generates a graph
> that contains two bars: one bar that extends along the positive y-axis and
> another bar that extends along the negative y-axis. The only difference
> between the two scripts is that in good.py the positive bar extends to
> 69.0, but in bad.py it extends to 70.0; however, while in good.py the
> y-axis ends precisely at -30.0, in bad.py the y-axis ends below -30.0
> despite the yticks setting specified on line 20. Is there an explanation
> for this behavior? How might I remedy this?
>
>
`yticks()` just sets the ticks, which shows up correctly in both plots. It
sounds like what you want to specify is the axis limit. You can add the
following (e.g. after the call to `yticks`):
 plt.ylim(ymin=-30)
As for the reason, it has to do with creating axes sizes that fit all the
elements within the plot area and also allow ticks that are "nicely"
spaced. You just happen to be near the threshold of two different spacings,
I think.
-Tony
From: Alexander C. <AC...@as...> - 2012年06月07日 17:29:23
Is it possible to clip an image like the matplotlib clip example, but by using a polycollection. I'd like to avoid looping through and creating paths/patches for each element and then combining them all at the end, is that the only way?
Cheers,
Alex
Alexander Crosby
RPS ASA
55 Village Square Drive
South Kingstown, RI 02879-8248
USA
Tel: +1 (401) 789-6224
Fax: +1 (401) 789-1932
Email: cr...@rp...<mailto:cr...@rp...>
www: asascience.com<http://www.asascience.com/> | rpsgroup.com<http://www.rpsgroup.com/>
A member of the RPS Group plc
From: kamel m. <kam...@gm...> - 2012年06月07日 16:47:16
Thank you very much. It works at last.
Kamel
2012年6月7日 Tony Yu <ts...@gm...>
>
> On Thu, Jun 7, 2012 at 12:14 PM, kamel maths <kam...@gm...>wrote:
>
>> Thanks for your answers.
>>
>> It is not very clear for me yet. This a script I tested.
>> ----------------------------------------------
>> from pylab import *
>>
>> fig = figure()
>> ax = fig.add_subplot(111)
>> ax.axis('equal')
>>
>> x = linspace(-2, 3, 50)
>> ax.plot(x, sin(x))
>>
>> ylim = ax.get_ylim()
>> print(ylim)
>>
>> show()
>>
>> ylim = ax.get_ylim()
>> print(ylim)
>> ------------------------------------
>> With the first print, I obtain (-1,1) and with the second one, after
>> having closed the figure showed, I obtain (-1.94,1.94). But I would like to
>> obtain (-1.94,1.94) with the first one in order to use this data in the
>> figure.
>> Is it possible ?
>>
>>
> Hi Kamel,
>
> (I'm recopying to the list; unfortunately, the mailing list doesn't do
> this automatically)
>
> Well, this is strange: I swear I tested this yesterday, and I got (-1.94,
> 1.94) when calling `get_ylim` before `show`. But when I test this today, I
> get (-1, 1) with the call before `show`.
>
> I guess the initial call to `get_ylim` returns that data limits (which are
> (-1, 1) in this case), but the call to `axis('equal')` results in a
> rescaling at draw time.
>
> If you're just trying to readjust the plot before the plot blocks
> execution, you can run `draw()` right before calling `get_ylim`. There may
> be a better approach, though.
>
> -Tony
>
>
>
From: Tony Yu <ts...@gm...> - 2012年06月07日 16:37:33
On Thu, Jun 7, 2012 at 12:14 PM, kamel maths <kam...@gm...> wrote:
> Thanks for your answers.
>
> It is not very clear for me yet. This a script I tested.
> ----------------------------------------------
> from pylab import *
>
> fig = figure()
> ax = fig.add_subplot(111)
> ax.axis('equal')
>
> x = linspace(-2, 3, 50)
> ax.plot(x, sin(x))
>
> ylim = ax.get_ylim()
> print(ylim)
>
> show()
>
> ylim = ax.get_ylim()
> print(ylim)
> ------------------------------------
> With the first print, I obtain (-1,1) and with the second one, after
> having closed the figure showed, I obtain (-1.94,1.94). But I would like to
> obtain (-1.94,1.94) with the first one in order to use this data in the
> figure.
> Is it possible ?
>
>
Hi Kamel,
(I'm recopying to the list; unfortunately, the mailing list doesn't do this
automatically)
Well, this is strange: I swear I tested this yesterday, and I got (-1.94,
1.94) when calling `get_ylim` before `show`. But when I test this today, I
get (-1, 1) with the call before `show`.
I guess the initial call to `get_ylim` returns that data limits (which are
(-1, 1) in this case), but the call to `axis('equal')` results in a
rescaling at draw time.
If you're just trying to readjust the plot before the plot blocks
execution, you can run `draw()` right before calling `get_ylim`. There may
be a better approach, though.
-Tony
From: Fabrice S. <si...@lm...> - 2012年06月07日 14:50:23
Le jeudi 07 juin 2012 à 14:07 +0100, David Craig a écrit :
> Hi,
> I trying to define an area in a pcolor plot (several plots) using the 
> ginput(). However since it is an irregular shape and will be different 
> in each plot so I cant define how many points there will be before hand, 
> I've tried the following but it requires a double click at each point, 
> which I would like to avoid as it duplicates points
> 
> |x = randn(10,10)
> imshow(x)
> 
> button = False
> points = []
> while button == False:
> points.append(ginput(1))
> button = waitforbuttonpress()
> |
> 
> Anyone know a better way to go about this??
> thanks
> Dave
ginput has a way to do it. From docs:
 If n is zero or negative, accumulate clicks until a middle click
 (or potentially both mouse buttons at once) terminates the
 input.
http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.ginput
Pressing [enter] also terminates the points acquisition.
-- 
Fabrice Silva <si...@lm...>
LMA UPR CNRS 7051
From: Benjamin R. <ben...@ou...> - 2012年06月07日 13:32:07
On Thu, Jun 7, 2012 at 9:07 AM, David Craig <dcd...@gm...> wrote:
> Hi,
> I trying to define an area in a pcolor plot (several plots) using the
> ginput(). However since it is an irregular shape and will be different in
> each plot so I cant define how many points there will be before hand, I've
> tried the following but it requires a double click at each point, which I
> would like to avoid as it duplicates points
>
> x = randn(10,10)
> imshow(x)
>
> button = False
> points = []
> while button == False:
> points.append(ginput(1))
> button = waitforbuttonpress()
>
> Anyone know a better way to go about this??
> thanks
> Dave
>
>
I would utilize the event handling mechanism within mpl to do this. You
can create a function that would append the xy coordinates to points at
each call. Here is a mockup.
def on_press(event) :
 on_press.points.append((event.xdata, event.ydata))
on_press.points = []
Then, you would need some way to indicate that you want to start and
finish, such as some sort of key press:
def key_press(event) :
 if event.key == 'a' :
 if key_press.active :
 key_press.mouse_cid =
key_press.fig.canvas.mpl_connect('button_press_event', on_press)
 else :
 key_press.fig.canvas.mpl_disconnect(key_press.mouse_cid)
 key_press.active = not key_press.active
key_press.active = False
key_press.fig = plt.figure()
key_press.fig.canvas.mpl_connect('key_press_event', key_press)
There are some more elegant ways of doing this, particularly by creating
some sort of object to hold these variables, but this is a quick and dirty
way of doing it.
I hope that helps!
Ben Root
From: David C. <dcd...@gm...> - 2012年06月07日 13:07:54
Hi,
I trying to define an area in a pcolor plot (several plots) using the 
ginput(). However since it is an irregular shape and will be different 
in each plot so I cant define how many points there will be before hand, 
I've tried the following but it requires a double click at each point, 
which I would like to avoid as it duplicates points
|x = randn(10,10)
imshow(x)
button = False
points = []
while button == False:
 points.append(ginput(1))
 button = waitforbuttonpress()
|
Anyone know a better way to go about this??
thanks
Dave
From: Benjamin R. <ben...@ou...> - 2012年06月07日 02:00:33
On Wed, Jun 6, 2012 at 6:12 PM, Tony Yu <ts...@gm...> wrote:
>
>
> On Wed, Jun 6, 2012 at 3:32 PM, kamel maths <kam...@gm...> wrote:
>
>> Hi,
>>
>> for this script:
>> ------------------------------------
>> from pylab import *
>>
>> fig = figure()
>> ax = fig.add_subplot(111)
>> ax.axis('equal')
>>
>> x = linspace(-2, 3, 50)
>> ax.plot(x, sin(x))
>>
>> show()
>> ---------------------------------
>> If I try to get ymax with ax.get_ylim(), i obtain 1.0 whereas I observe
>> it is 2.0.
>> How can I obtain 2.0 for ymax ?
>>
>> Thanks.
>>
>> Kamel
>>
>
> Hi Kamel,
>
> I'm not seeing the same result: I actually get back (-1.94, 1.94) from
> `get_ylim`. When do you call `get_ylim`? Do you call it *after* calling
> `plot`?
>
> -Tony
>
>
Or, more likely, are you calling it *after* you close the figure? If so,
then the axes has already been cleared and you are merely finding the
limits for a newly created (but unshown) figure.
Make sure you get the limits after the plotting, but before the show().
Ben Root
1 message has been excluded from this view by a project administrator.

Showing 9 results of 9

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