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


Showing 9 results of 9

From: Paul M. <pau...@us...> - 2011年06月21日 23:18:58
Dear Matplotlib folks,
is it possible in Matplotlib to add eye candy or gimmicks to the plots
like fading? For example if I want to just show a subpart(?) of a plot
this would like "cool". (I am pretty sure that opinions differ if such
things are useful or not, but please leave this out of the discussion.)
It looks like PGF/TikZ supports such things (manual [1], page 206) and
therefore I am wondering if Matplotlib can do this too?
Thanks,
Paul
[1] http://www.ctan.org/tex-archive/graphics/pgf/base/doc/generic/pgf/pgfmanual.pdf
From: <jos...@gm...> - 2011年06月21日 23:17:42
Attachments: try_bin_random_walk.py
On Tue, Jun 21, 2011 at 5:25 PM, Paul Menzel
<pau...@us...> wrote:
> Am Dienstag, den 21.06.2011, 09:43 -0400 schrieb jos...@gm...:
>> On Tue, Jun 21, 2011 at 8:47 AM, Paul Menzel wrote:
>
>> > I want to plot all paths of a simple random walk and wrote the following
>> > recursive program based on the Path tutorial [1].
>> >
>> >    import matplotlib.pyplot as plt
>> >    from matplotlib.path import Path
>> >    import matplotlib.patches as patches
>> >
>> >    def draw(a, b, c, d):
>> >            verts = [
>> >            (a, b),
>> >            (c, d),
>> >            (0, 0),
>> >            ]
>> >
>> >            codes = [
>> >            Path.MOVETO,
>> >            Path.LINETO,
>> >            Path.CLOSEPOLY
>> >            ]
>> >
>> >            path = Path(verts, codes)
>> >            patch = patches.PathPatch(path)
>> >            ax.add_patch(patch)
>> >
>> >    def irrpfad(a, b):
>> >        if a < length:
>> >            draw(a, b, a + 1., b + 1.)
>> >            draw(a, b, a + 1., b - 1.)
>> >            irrpfad(a + 1, b + 1)
>> >            irrpfad(a + 1, b - 1)
>> >
>> >
>> >    length = 5 # 20 not possible to run
>> >
>> >    fig = plt.figure()
>> >    ax = fig.add_subplot(111)
>> >    irrpfad(0, 0)
>> >    ax.set_xlim(0,length)
>> >    ax.set_ylim(-length,length)
>> >    plt.show()
>> >
>> > Using 20 for `length` stalls my system and the memory used seems to be
>> > over 1 GB. I guess this is what you guess using something recursive.
>> > What optimizations are there. I am drawing each line after another so
>> > probably too many separate paths instead of one. Being a Python noob I
>> > do not know if I can append something to a path. Looking at the API
>> > documentation [2] I did not see such a method.
>> >
>> > Being also new to Matplotlib I may have also overlooked more appropriate
>> > methods/classes.
>> >
>> > So to summarize my message,
>> >
>> > 1. How can I add lines to a path?
>> > 2. Are recursive functions bad in Python/Matplotlib?
>> > 3. Are there better approaches?
>>
>> I'm not sure what you are trying to show, but my impression is that you are
>> just producing the grid between integers (move up,down),
>
> Yeah, that is about right [1].
>
>> and paths will not show up because the lines are all on top of each other.
>
> That is not true. My program displays everything correctly when using
> for example `length = 5`.
>
>> The number of all paths looks very large to me and even without matplotlib
>> overhead, this might soon run into problems.
>
> That is what thought too.
>
>> for example;
>> for length= 15; I get 65534 moves in the random walks, but only 240 unique moves
>> for length= 20; I get 2097150 moves in the random walks, but only 420 unique moves
>> plotting only unique moves is fast (count of moves might work to color the
>> amount of traffic on each move)
>
> I am sorry, I think that in my program no section is drawn more than
> once.
each append below corresponds to one call to your draw function
Do you want to draw all possible routes, or the road network? I only
see the road network in the plot (and partially the traffic density
with alpha<1).
Josef
>
>> rw_moves = []
>> def irrpfad2(a, b):
>>   if a < length:
>>     rw_moves.append((a, b, a + 1, b + 1))
>>     rw_moves.append((a, b, a + 1, b - 1))
>>     irrpfad2(a + 1, b + 1)
>>     irrpfad2(a + 1, b - 1)
>>
>> length = 20 # 20 not possible to run
>> irrpfad2(0, 0)
>
> Thank you for the example, but now I need to somehow also add the codes
> to be able to pass this to Path.
>
>> I don't know any answer to the matplotlib specific part
>
> Thank you for your other answers.
>
>> > Please find the source also attached. I am using python-matplotlib
>> > 1.0.1-2 from Debian Sid/unstable.
>
>
> Thanks,
>
> Paul
>
>
>> > [1] http://matplotlib.sourceforge.net/users/path_tutorial.html
>> > [2] http://matplotlib.sourceforge.net/api/path_api.html#matplotlib.path.Path
> [3] https://secure.wikimedia.org/wikipedia/en/wiki/Random_walk
>
> ------------------------------------------------------------------------------
> EditLive Enterprise is the world's most technically advanced content
> authoring tool. Experience the power of Track Changes, Inline Image
> Editing and ensure content is compliant with Accessibility Checking.
> http://p.sf.net/sfu/ephox-dev2dev
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
From: Paul M. <pau...@us...> - 2011年06月21日 21:26:01
Am Dienstag, den 21.06.2011, 09:43 -0400 schrieb jos...@gm...:
> On Tue, Jun 21, 2011 at 8:47 AM, Paul Menzel wrote:
> > I want to plot all paths of a simple random walk and wrote the following
> > recursive program based on the Path tutorial [1].
> >
> > import matplotlib.pyplot as plt
> > from matplotlib.path import Path
> > import matplotlib.patches as patches
> >
> > def draw(a, b, c, d):
> > verts = [
> > (a, b),
> > (c, d),
> > (0, 0),
> > ]
> >
> > codes = [
> > Path.MOVETO,
> > Path.LINETO,
> > Path.CLOSEPOLY
> > ]
> >
> > path = Path(verts, codes)
> > patch = patches.PathPatch(path)
> > ax.add_patch(patch)
> >
> > def irrpfad(a, b):
> > if a < length:
> > draw(a, b, a + 1., b + 1.)
> > draw(a, b, a + 1., b - 1.)
> > irrpfad(a + 1, b + 1)
> > irrpfad(a + 1, b - 1)
> >
> >
> > length = 5 # 20 not possible to run
> >
> > fig = plt.figure()
> > ax = fig.add_subplot(111)
> > irrpfad(0, 0)
> > ax.set_xlim(0,length)
> > ax.set_ylim(-length,length)
> > plt.show()
> >
> > Using 20 for `length` stalls my system and the memory used seems to be
> > over 1 GB. I guess this is what you guess using something recursive.
> > What optimizations are there. I am drawing each line after another so
> > probably too many separate paths instead of one. Being a Python noob I
> > do not know if I can append something to a path. Looking at the API
> > documentation [2] I did not see such a method.
> >
> > Being also new to Matplotlib I may have also overlooked more appropriate
> > methods/classes.
> >
> > So to summarize my message,
> >
> > 1. How can I add lines to a path?
> > 2. Are recursive functions bad in Python/Matplotlib?
> > 3. Are there better approaches?
> 
> I'm not sure what you are trying to show, but my impression is that you are
> just producing the grid between integers (move up,down),
Yeah, that is about right [1].
> and paths will not show up because the lines are all on top of each other.
That is not true. My program displays everything correctly when using
for example `length = 5`.
> The number of all paths looks very large to me and even without matplotlib
> overhead, this might soon run into problems.
That is what thought too.
> for example;
> for length= 15; I get 65534 moves in the random walks, but only 240 unique moves
> for length= 20; I get 2097150 moves in the random walks, but only 420 unique moves
> plotting only unique moves is fast (count of moves might work to color the
> amount of traffic on each move)
I am sorry, I think that in my program no section is drawn more than
once.
> rw_moves = []
> def irrpfad2(a, b):
> if a < length:
> rw_moves.append((a, b, a + 1, b + 1))
> rw_moves.append((a, b, a + 1, b - 1))
> irrpfad2(a + 1, b + 1)
> irrpfad2(a + 1, b - 1)
> 
> length = 20 # 20 not possible to run
> irrpfad2(0, 0)
Thank you for the example, but now I need to somehow also add the codes
to be able to pass this to Path.
> I don't know any answer to the matplotlib specific part
Thank you for your other answers.
> > Please find the source also attached. I am using python-matplotlib
> > 1.0.1-2 from Debian Sid/unstable.
Thanks,
Paul
> > [1] http://matplotlib.sourceforge.net/users/path_tutorial.html
> > [2] http://matplotlib.sourceforge.net/api/path_api.html#matplotlib.path.Path
[3] https://secure.wikimedia.org/wikipedia/en/wiki/Random_walk
From: Justin M. <jn...@gm...> - 2011年06月21日 18:48:22
On Tue, Jun 21, 2011 at 1:50 PM, Frank <fra...@go...> wrote:
> matplotlib python: How do you change the background color of a line plot
> according to a given column? Say I have the following data file
>...
> 2. 1
> 3. 1
> 3. 2
>
> The first column represents the y-values, and the 2nd column should control
> the background color. Say, it plots the (black) line on a white-gray
> alternating background (zebra-like) as proceeding further in x-direction,
> where the transition in color occurs anytime the integer in the 2nd column
> increments. Or other possible solution: Use 2nd column as function argument
> to determine background color.
>
> How would one do this with matlibplot?
You can use axvspan (see below). You'll need to track where the 2nd
column changes, and then use axvspan to make a colored fill between
(x-1, x). Make sure you pass in a low (< 0) zorder number to the
axvspan function so it stays in the background.
pyplot function:
 http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.axvspan
Axes method:
 http://matplotlib.sourceforge.net/api/axes_api.html#matplotlib.axes.Axes.axvspan
Hope that helps,
 Justin
From: Frank <fra...@go...> - 2011年06月21日 17:50:50
matplotlib python: How do you change the background color of a line plot
according to a given column? Say I have the following data file
1. 0
4. 0
2. 0
1. 1
2. 1
3. 1
3. 2
1. 2
2. 2
The first column represents the y-values, and the 2nd column should control
the background color. Say, it plots the (black) line on a white-gray
alternating background (zebra-like) as proceeding further in x-direction,
where the transition in color occurs anytime the integer in the 2nd column
increments. Or other possible solution: Use 2nd column as function argument
to determine background color.
How would one do this with matlibplot?
Frank
From: <jos...@gm...> - 2011年06月21日 13:43:11
On Tue, Jun 21, 2011 at 8:47 AM, Paul Menzel <
pau...@us...> wrote:
> Dear Matplotlib folks,
>
>
> I want to plot all paths of a simple random walk and wrote the following
> recursive program based on the Path tutorial [1].
>
> import matplotlib.pyplot as plt
> from matplotlib.path import Path
> import matplotlib.patches as patches
>
> def draw(a, b, c, d):
> verts = [
> (a, b),
> (c, d),
> (0, 0),
> ]
>
> codes = [
> Path.MOVETO,
> Path.LINETO,
> Path.CLOSEPOLY
> ]
>
> path = Path(verts, codes)
> patch = patches.PathPatch(path)
> ax.add_patch(patch)
>
> def irrpfad(a, b):
> if a < length:
> draw(a, b, a + 1., b + 1.)
> draw(a, b, a + 1., b - 1.)
> irrpfad(a + 1, b + 1)
> irrpfad(a + 1, b - 1)
>
>
> length = 5 # 20 not possible to run
>
> fig = plt.figure()
> ax = fig.add_subplot(111)
> irrpfad(0, 0)
> ax.set_xlim(0,length)
> ax.set_ylim(-length,length)
> plt.show()
>
> Using 20 for `length` stalls my system and the memory used seems to be
> over 1 GB. I guess this is what you guess using something recursive.
> What optimizations are there. I am drawing each line after another so
> probably too many separate paths instead of one. Being a Python noob I
> do not know if I can append something to a path. Looking at the API
> documentation [2] I did not see such a method.
>
> Being also new to Matplotlib I may have also overlooked more appropriate
> methods/classes.
>
> So to summarize my message,
>
> 1. How can I add lines to a path?
> 2. Are recursive functions bad in Python/Matplotlib?
> 3. Are there better approaches?
>
I'm not sure what you are trying to show, but my impression is that you are
just producing the grid between integers (move up,down), and paths will not
show up because the lines are all on top of each other.
The number of all paths looks very large to me and even without matplotlib
overhead, this might soon run into problems.
for example;
for length= 15; I get 65534 moves in the random walks, but only 240 unique
moves
for length= 20; I get 2097150 moves in the random walks, but only 420 unique
moves
plotting only unique moves is fast (count of moves might work to color the
amount of traffic on each move)
rw_moves = []
def irrpfad2(a, b):
 if a < length:
 rw_moves.append((a, b, a + 1, b + 1))
 rw_moves.append((a, b, a + 1, b - 1))
 irrpfad2(a + 1, b + 1)
 irrpfad2(a + 1, b - 1)
length = 20 # 20 not possible to run
irrpfad2(0, 0)
I don't know any answer to the matplotlib specific part
Josef
>
> Please find the source also attached. I am using python-matplotlib
> 1.0.1-2 from Debian Sid/unstable.
>
>
> Thanks,
>
> Paul
>
>
> [1] http://matplotlib.sourceforge.net/users/path_tutorial.html
> [2]
> http://matplotlib.sourceforge.net/api/path_api.html#matplotlib.path.Path
>
>
> ------------------------------------------------------------------------------
> EditLive Enterprise is the world's most technically advanced content
> authoring tool. Experience the power of Track Changes, Inline Image
> Editing and ensure content is compliant with Accessibility Checking.
> http://p.sf.net/sfu/ephox-dev2dev
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
From: Paul M. <pau...@us...> - 2011年06月21日 12:48:08
Attachments: srw.py
Dear Matplotlib folks,
I want to plot all paths of a simple random walk and wrote the following
recursive program based on the Path tutorial [1].
 import matplotlib.pyplot as plt
 from matplotlib.path import Path
 import matplotlib.patches as patches
 
 def draw(a, b, c, d):
 verts = [
 (a, b),
 (c, d),
 (0, 0),
 ]
 
 codes = [
 Path.MOVETO,
 Path.LINETO,
 Path.CLOSEPOLY
 ]
 
 path = Path(verts, codes)
 patch = patches.PathPatch(path)
 ax.add_patch(patch)
 
 def irrpfad(a, b):
 if a < length:
 draw(a, b, a + 1., b + 1.)
 draw(a, b, a + 1., b - 1.)
 irrpfad(a + 1, b + 1)
 irrpfad(a + 1, b - 1)
 
 
 length = 5 # 20 not possible to run
 
 fig = plt.figure()
 ax = fig.add_subplot(111)
 irrpfad(0, 0)
 ax.set_xlim(0,length)
 ax.set_ylim(-length,length)
 plt.show()
Using 20 for `length` stalls my system and the memory used seems to be
over 1 GB. I guess this is what you guess using something recursive.
What optimizations are there. I am drawing each line after another so
probably too many separate paths instead of one. Being a Python noob I
do not know if I can append something to a path. Looking at the API
documentation [2] I did not see such a method.
Being also new to Matplotlib I may have also overlooked more appropriate
methods/classes.
So to summarize my message,
1. How can I add lines to a path?
2. Are recursive functions bad in Python/Matplotlib?
3. Are there better approaches?
Please find the source also attached. I am using python-matplotlib
1.0.1-2 from Debian Sid/unstable.
Thanks,
Paul
[1] http://matplotlib.sourceforge.net/users/path_tutorial.html
[2] http://matplotlib.sourceforge.net/api/path_api.html#matplotlib.path.Path
From: Mike K. <mc...@gm...> - 2011年06月21日 12:20:24
Attachments: myticker.py
I'm not sure exactly how you want your minor ticks, but you can try this 
LinearMinorLocator (which is not in the distribution yet).
If you're conversant with git you can find the branch here: 
https://github.com/matplotlib/matplotlib/pull/122
M
On 6/19/11 3:20 PM, mat...@xo... wrote:
> I am having trouble adding minor tick marks to an auto-scaled axis on
> a linear plot. I hope someone can help.
>
> I am drawing a plot where the X axis values are predictable, so I
> have the ability to define the desired major/minor intervals for
> tickmarks and gridlines. The scale of the X axis is automatically
> defined by matplotlib. I have manually specified the major and minor
> X axis tick/grid intervals using:
>
> plt.grid(True, which='both') XmajorLocator XmajorFormatter
> XminorLocator
>
> My Y axis values are not predictable, so I rely on matplotlib to
> autoscale the Y axis, automatically defining the total range of
> values plotted and the major tickmark& gridline intervals. I need
> more gridline resolution, so I would like to be able to add minor
> gridlines to the automatically scaled Y axis, but I'm having trouble
> doing it.
>
> At present the autoscaled Y axis is only producing major ticks and
> major gridlines. I'd like to add minor ticks and gridlines, but I
> have not been successful so far. I'm hoping that someone can point
> out an obvious solution that I've just overlooked. TIA.
>
>
> ------------------------------------------------------------------------------
>
>
EditLive Enterprise is the world's most technically advanced content
> authoring tool. Experience the power of Track Changes, Inline Image
> Editing and ensure content is compliant with Accessibility Checking.
> http://p.sf.net/sfu/ephox-dev2dev
> _______________________________________________ Matplotlib-users
> mailing list Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
From: kafooster <dmo...@gm...> - 2011年06月21日 01:13:43
Hello,
I am trying to display an array with imshow(), however I want to 'turn off'
display of axes, numbers, and all that extra stuff which comes with it. I
want only my array(grayscale image) to be shown
###########################
import wx
import matplotlib
matplotlib.use( 'WXAgg' )
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg
from matplotlib.figure import Figure
class Frame1(wx.Frame):
 def __init__(self, parent):
 wx.Frame.__init__(self,None)
 self.panel1 = wx.Panel(self)
 self.Add_MPL_Plot()
 def Add_MPL_Plot(self):
 figure = Figure(None, 80)
 canvas = FigureCanvasWxAgg(self.panel1, -1, figure)
 canvas.SetSize(wx.Size(300,300))
 subplot = figure.add_subplot(111)
 subplot.imshow(here comes my array) # i did not included it to code
for simplicity
if __name__ == '__main__':
 app = wx.PySimpleApp()
 frame = Frame1(None)
 frame.Show()
 app.MainLoop() 
#########################
is there a way to do it?
another thing, is it possible to open .png images this way? (since it is
possible to save stuff plotted with imshow to .png) 
-- 
View this message in context: http://old.nabble.com/displaying-plain-data-without-fancy-features-%28wx%29-tp31890673p31890673.html
Sent from the matplotlib - users mailing list archive at Nabble.com.

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