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


Showing 8 results of 8

From: Darren D. <dd...@co...> - 2006年08月01日 14:33:17
On Tuesday 01 August 2006 08:52, John Hunter wrote:
> >>>>> "Jouni" == Jouni K Seppanen <jk...@ik...> writes:
>
> Jouni> The draw_lines method in the PS backend divides the line
> Jouni> into subsequences of at most 50 points, and calls the
> Jouni> "stroke" operator for each subsequence, which in effect
> Jouni> resets the dash offset. Thus if 50 consecutive points fit
> Jouni> within a dash, the line appears solid.
>
> 50 seems awfully small to me. There are maximum length path
> limitations of some postscript interpreters which is why we batch
> these up. Darren, could we get away with a step of 1000 here rather
> than 50?
Here are GGV's render times for a line containing 1e6 points:
division | time (s)
50		3
1000	9
100000	8
none	28
I bumped it up to 100,000 in svn 2644, which seems to have improved the dash 
problem.
Darren
From: David H. <dav...@gm...> - 2006年08月01日 14:19:52
>
>
> There is a nice little trick where you can make two axes share the
> same xaxis. Then when you pan or zoom on one, the other is
> automagically changed to
>
> ax1 = subplot(211)
> ax2 = subplot(212, sharex=ax1)
But that's not retroactive, or is it ? i.e. if ax2 has a wider x range than
ax1, it won't show up.
f = figure(1)
s1 = subplot(211)
s1.plot([1,2,3], [1,2,3])
s2 = subplot(212, sharex = s1)
s2.plot([4,5,6], [1,2,3])
I came up with the following function to solve that problem. Is there a more
elegant solution?
def uniform_limits(axes, xrange = 'widest', yrange = 'widest'):
 """For all axes, sets xlim and ylim to the widest (shortest) range."""
 x = []
 y = []
 for ax in axes:
 x.append(ax.get_xlim())
 y.append(ax.get_ylim())
 x = vstack(asarray(x))
 y = vstack(asarray(y))
 if xrange == 'widest':
 xlims = x.min(0)[0], x.max(0)[1]
 elif xrange == 'shortest':
 xlims = x.max(0)[0], x.min(0)[1]
 if yrange == 'widest':
 ylims = y.min(0)[0], y.max(0)[1]
 elif yrange == 'shortest':
 ylims = y.max(0)[0], y.min(0)[1]
 setp(axes, 'xlim', xlims, 'ylim', ylims)
David
From: John H. <jdh...@ac...> - 2006年08月01日 13:02:55
>>>>> "Jouni" == Jouni K Seppanen <jk...@ik...> writes:
 Jouni> The draw_lines method in the PS backend divides the line
 Jouni> into subsequences of at most 50 points, and calls the
 Jouni> "stroke" operator for each subsequence, which in effect
 Jouni> resets the dash offset. Thus if 50 consecutive points fit
 Jouni> within a dash, the line appears solid.
50 seems awfully small to me. There are maximum length path
limitations of some postscript interpreters which is why we batch
these up. Darren, could we get away with a step of 1000 here rather
than 50?
JDH
From: John H. <jdh...@ac...> - 2006年08月01日 13:00:51
>>>>> "David" == David Huard <dav...@gm...> writes:
 David> Hi John, Thanks for taking the time to answer a badly
 David> formulated question. With your indications, I have been
 David> able to get an example working.
Great.
 David> s1.set_xlim(s2.get_xlim()) 
There is a nice little trick where you can make two axes share the
same xaxis. Then when you pan or zoom on one, the other is
automagically changed to
ax1 = subplot(211)
ax2 = subplot(212, sharex=ax1)
Ditto for sharey. A very useful trick!
JDH
From: Jouni K S. <jk...@ik...> - 2006年08月01日 08:04:20
Eric Emsellem <ems...@ob...> writes:
> But when saving it in a postscript the dashed line looks solid on most
> of the plot.
> This happens if there are too many points in the line:
The draw_lines method in the PS backend divides the line into
subsequences of at most 50 points, and calls the "stroke" operator for
each subsequence, which in effect resets the dash offset. Thus if 50
consecutive points fit within a dash, the line appears solid.
I suppose the division into subsequences solves some memory or speed
problem with PS interpreters, so it should be retained. Then the
solution would be to compute the length X of each subsequence and do
something like "currentdash pop X setdash" after the "stroke".
-- 
Jouni
From: Eric E. <ems...@ob...> - 2006年08月01日 07:24:53
Hi,
I just produced a plot with a curve dashed line:
when saving it into a png file it works fine.
But when saving it in a postscript the dashed line looks solid on most
of the plot.
This happens if there are too many points in the line:
x = arange(0,1.,0.0001)
y = sqrt(x)
plot(x,y,'k--')
## Png file is ok
savefig("toto.png")
## Eps file is NOT ok
savefig("toto.eps")
Any cure to that behaviour?
Thanks!!!
Eric
From: Jouni K S. <jk...@ik...> - 2006年08月01日 06:05:06
"Alexander Michael" <lxa...@gm...> writes:
> I would like to create a plot axis with major tick labels centered
> *between* major tick markers instead below tick markers.
Take a look at
http://thread.gmane.org/gmane.comp.python.matplotlib.general/5271
http://thread.gmane.org/gmane.comp.python.matplotlib.general/5296
http://www.scipy.org/Cookbook/Matplotlib/Transformations
-- 
Jouni
From: David H. <dav...@gm...> - 2006年08月01日 02:42:33
Hi John,
Thanks for taking the time to answer a badly formulated question. With your
indications, I have been able to get an example working.
The point was that I had a function with a number of arguments that returned
a subplot(111) instance. Inside this function there are thousands of calls
to plot, there are labels and a title. I called the function from my main
script, called savefig and stored the figure. Now I want to compare two such
figures side by side, and ideally tweak the axes so they are identical.
Here is what I came up with your help:
def make_complicated_graph(x, sub = None):
 s = sub or subplot(111)
 s.plot(x)
 s.set_title('test12')
 s.set_xlabel('T')
 s.set_ylabel('Y')
 s.scatter([3,4], [5,2], s= 5, c='r')
 if sub is None:
 return s
fig = figure(1)
s1 = subplot(2,1,1)
s2 = subplot(2,1,2)
make_complicated_graph(arange(5), sub = s1)
make_complicated_graph(arange(10), sub = s2)
s1.set_xlim(s2.get_xlim())
show()
Thanks again for your help.
David

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