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) |
|
|
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 > > |