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

Showing 3 results of 3

From: Russell O. <ro...@uw...> - 2014年10月22日 18:26:57
I'm seeing a memory leak with calls to subplot.clear() and canvas.draw() 
on MacOS. The same code shows no leakage on unix.
Here is a simple script that demonstrates the problem.
#!/usr/bin/env python
from __future__ import division
"""Demonstrate a memory leak in matplotlib on MacOS with TkAgg
Variants:
- Comment out subplot.clear(): this reduces the leak by about 4/5
- Comment out canvas.draw(): this reduces the leak by about 1/5
- Comment out both: there should be essentially no leakage
The leak rate seems to be affected by the update rate
(larger update interval causes lower leakage),
which suggests it's not a simple "x amount of leakage per call".
"""
import resource
import time
import Tkinter
import matplotlib
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
class MemoryLeaker(Tkinter.Frame):
 """Demonstrate a memory leak in matplotlib
 """
 def __init__(self, master, updateInterval=0.1, updatesPerReport=25):
 """Construct a MemoryLeaker
 Inputs:
 - master: master widget
 - updateInterval: interval at which subplot.clear and 
canvas.draw are called
 - updatesPerReport: number of updates between memory reports
 """
 Tkinter.Frame.__init__(self, master)
 self._updateInterval = float(updateInterval)
 self._updatesPerReport = int(updatesPerReport)
 self.figure = matplotlib.figure.Figure(figsize=(8, 2), 
frameon=True)
 self.canvas = FigureCanvasTkAgg(self.figure, self)
 self.canvas.get_tk_widget().grid(row=0, column=0, sticky="news")
 self.subplot = self.figure.add_subplot(1, 1, 1)
 print "time max RSS leak rate"
 print "(sec) (kb) (kb/sec)"
 self._prevTime = time.time()
 self._prevMem = float("nan")
 self._reportCount = 0
 self.updatePlot()
 def updatePlot(self):
 """Update the plot; calls itself at the update interval
 """
 if self._reportCount == 0:
 self.reportMem()
 self._reportCount = (self._reportCount + 1) % 
self._updatesPerReport
 self.subplot.clear()
 self.canvas.draw()
 self.after(int(self._updateInterval * 1000), self.updatePlot)
 def reportMem(self):
 currTime = time.time()
 dTime = currTime - self._prevTime
 res = resource.getrusage(resource.RUSAGE_SELF)
 currMem = res.ru_maxrss / 1024 # maximum resident set size 
utilized (in kb)
 leakRate = (currMem - self._prevMem) / dTime
 self._prevTime = currTime
 self._prevMem = currMem
 print "%6.1f %6d %6.1f" % (dTime, currMem, leakRate)
if __name__ == "__main__":
 root = Tkinter.Tk()
 wdg = MemoryLeaker(root, updateInterval=0.1, updatesPerReport=25)
 wdg.pack(expand=True, fill="both")
 root.mainloop()
P.S. my current setup is:
- MacOS 10.9
- python.org python 2.7.8
- matploblib 1.3.1
- a pre-release of Tcl/Tk 8.5.17
but I've seen this on many earlier versions, as well
I have not tried it with matplotlib 1.4.1 yet (due to problems packaging 
that with py2app).
From: Tommy C. <tom...@gm...> - 2014年10月22日 16:37:53
I was able to solve my two problems by doing label="" and numpoints=1.
Thank you very much for your help.
I found my solution here:
http://stackoverflow.com/questions/19385639/duplicate-items-in-legend-in-matplotlib
There is also another cleaner solution here:
http://stackoverflow.com/questions/13588920/stop-matplotlib-repeating-labels-in-legend
import matplotlib
matplotlib.use('Agg')
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
map = Basemap()
map.plot(label="")
plt.legend(numpoints=1)
On Mon, Oct 20, 2014 at 8:11 AM, Benjamin Root <ben...@ou...> wrote:
> Legends entries are blindly constructed. Each plotting call that has a
> legend keyword argument will produce a legend entry if you are automatically
> building the legend. You can pass a label value of "__nolabel__" to prevent
> an entry if you know you are about to do something that would duplicate the
> entries. Another approach is to manually collect unique artists and manually
> build the legend (I think there is an example of that in the gallary).
>
> As for configuring the legend, there are a bunch of parameters that can be
> set for sizing the font. I think the sizing of the marker is determined by
> their size in the plot, though.
>
> Cheers!
> Ben Root
>
>
> On Mon, Oct 20, 2014 at 10:46 AM, Hearne, Mike <mh...@us...> wrote:
>>
>> For your first question: Use the legend "numpoints" keyword. I think
>> if you set it to 1, it should solve that problem.
>>
>> For your second question, I'm not sure, but I'll bet if you poke
>> around in the Legend object returned by the function, you'll find
>> something.
>>
>> On Mon, Oct 20, 2014 at 8:04 AM, Tommy Carstensen
>> <tom...@gm...> wrote:
>> > How does one avoid duplicate legends?
>> >
>> > www.tommycarstensen.com/python2_matplotlib_basemap_merc_bluemarble_hresolution.jpg
>> >
>> > Can I make the legend size smaller than the marker size?
>> >
>> >
>> > ------------------------------------------------------------------------------
>> > Comprehensive Server Monitoring with Site24x7.
>> > Monitor 10 servers for 9ドル/Month.
>> > Get alerted through email, SMS, voice calls or mobile push
>> > notifications.
>> > Take corrective actions from your mobile device.
>> > http://p.sf.net/sfu/Zoho
>> > _______________________________________________
>> > Matplotlib-users mailing list
>> > Mat...@li...
>> > https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>
>>
>> ------------------------------------------------------------------------------
>> Comprehensive Server Monitoring with Site24x7.
>> Monitor 10 servers for 9ドル/Month.
>> Get alerted through email, SMS, voice calls or mobile push notifications.
>> Take corrective actions from your mobile device.
>> http://p.sf.net/sfu/Zoho
>> _______________________________________________
>> Matplotlib-users mailing list
>> Mat...@li...
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
From: Paul H. <pmh...@gm...> - 2014年10月22日 16:01:32
I seem to recall that the MaxNLocator and some carefully chosen axes limits
suffices for me in the past.
On Tue, Oct 21, 2014 at 11:44 AM, Adam Hughes <hug...@gm...>
wrote:
> I wrote a program that draws grids manually on mpl plots a while back. If
> you can't find a solution can you write back here and I'll try to get that
> dusted off?
> On Oct 21, 2014 2:39 PM, "Benjamin Root" <ben...@ou...> wrote:
>
>> Well, the first part is easy... it is called twinx(). If you look up axis
>> twinning in the documentation, you will find a lot of examples of this.
>>
>> As for the grids part... that would be tricky. I would first just see if
>> matplotlib "just does the right thing". Doubtful, but who knows? Then I
>> would likely go the route of lining up the major ticks on both axes so that
>> the grid lines for one axes match up with the ticks for the other.
>>
>> Let us know what you find out. Maybe it might be a useful feature to add
>> for twinning.
>>
>> Cheers!
>> Ben Root
>>
>>
>> On Tue, Oct 21, 2014 at 2:29 PM, Neal Becker <ndb...@gm...> wrote:
>>
>>> I need to overlay 2 different plots. They will share an x-axis, but
>>> will have 2
>>> different y axis with 2 different sets of units. I want one y-axis on
>>> left and
>>> one on right.
>>>
>>> But to make it harder, I want a grid. That means, there are either 2
>>> different
>>> grids, which is ugly, or one plot has to be scaled vertically so that
>>> the same y
>>> grid can be shared between them.
>>>
>>> Anyone know how to do this?
>>>
>>> --
>>> -- Those who don't understand recursion are doomed to repeat it
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Comprehensive Server Monitoring with Site24x7.
>>> Monitor 10 servers for 9ドル/Month.
>>> Get alerted through email, SMS, voice calls or mobile push notifications.
>>> Take corrective actions from your mobile device.
>>> http://p.sf.net/sfu/Zoho
>>> _______________________________________________
>>> Matplotlib-users mailing list
>>> Mat...@li...
>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> Comprehensive Server Monitoring with Site24x7.
>> Monitor 10 servers for 9ドル/Month.
>> Get alerted through email, SMS, voice calls or mobile push notifications.
>> Take corrective actions from your mobile device.
>> http://p.sf.net/sfu/Zoho
>> _______________________________________________
>> Matplotlib-users mailing list
>> Mat...@li...
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>
>>
>
> ------------------------------------------------------------------------------
> Comprehensive Server Monitoring with Site24x7.
> Monitor 10 servers for 9ドル/Month.
> Get alerted through email, SMS, voice calls or mobile push notifications.
> Take corrective actions from your mobile device.
> http://p.sf.net/sfu/Zoho
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>

Showing 3 results of 3

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