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






Showing 2 results of 2

From: Charles T. <Cha...@in...> - 2003年11月03日 00:28:39
A slightly different approach to live plotting. I have a numerical
program that calls a status function every run through the main loop. It
allows the user to define a status function and pass it that function
(defaulting to just a one-line report on sys.err).
Using GTK idle slowed things down way too much, because GTK was always
idle, even though the number cruncher wasn't. GTK timeout didn't work
either. Using threads was too complicated and error prone, for no gain.
What I wanted was a meter that updated every second or so.
Here is my status function. It shows traces for the best score so far, and
the current score. If enough time has elapsed, it plots (thus scheduling
GTK events), otherwise no. So the gtk.events_pending() call near the end
is usually false.
It rescales the graph too, as required. You can ignore the "interrupted"
stuff -- that allows me to send a "stop" signal to the numerical routine,
saying "Ok, it looks to me like you've converged, stop now."
	-Charles
----------
def my_status_func(*args, **kwargs):
 """ Gather info from a running snob, and plot it.
 It expects the final arg to be a dictionary with
 the following keyword arguments:
 fig -- the matplot figure for drawing to
 ax -- the matplot axes in that figure
 t1 -- a list of length 1, with timestamp of last refresh
 iteratns -- sequence of all iteration #s to date (x axis)
 currlens -- sequence of all current lengths to date
 bestlens -- sequence of all best lenghts to date
 All of these kwargs will be modified, at least sometimes.
 """
 #global currlens, bestlens, iteratns, t
 UPDATE_INTERVAL = 1 # how long in s to wait before updating graph
 itr = args[0] + 1
 max_itr = args[1]
 cl = int (args[2][0] / N.log(2))
 bl = int (args[3][0] / N.log(2))
 #cl = int (curr[0] / N.log(2))
 #bl = int (best[0] / N.log(2))
 # Extract variables from kwargs
 t1 = kwargs['t1']
 iteratns = kwargs['iteratns']
 currlens = kwargs['currlens']
 bestlens = kwargs['bestlens']
 iteratns.append (itr)
 currlens.append (cl)
 bestlens.append (bl)
 if itr == 1:
 print "Original length: ", cl
 delta = time.time() - t1[0]
 if (itr > 1) and ( (delta > UPDATE_INTERVAL) or (itr >= max_itr) ):
 # matplot has trouble if we plot just a single data point
 # so we wait for itr > 1
# if not ShowOn().get():
# ShowOn().set(True)
 fig = kwargs['fig']
 ax = kwargs['ax']
 xlo, xhi = ax.get_xlim()
 xlo = max ( 0, xlo) # Check bc original call is ignored
 xhi = max (50, xhi) # Likewise
 if itr > xhi:
 xhi *= 2
 ax.set_xlim ([xlo, xhi])
 ax.set_ylim ( [ min(currlens), max(currlens) ] )
 plot(iteratns, currlens, 'b',
 iteratns, bestlens, 'r')
 fig.draw() # schedule a refresh
 t1[0] = time.time()
 # Display any updates to the figure
 while gtk.events_pending():
 gtk.mainiteration() # if running in normal gtk thread
 global interrupted
 if interrupted:
 return 1
 return snob.default_status_func(*args)
From: Charles T. <Cha...@in...> - 2003年11月03日 00:17:52
Pretty!

Showing 2 results of 2

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