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


Showing 2 results of 2

From: Benjamin R. <ben...@ou...> - 2015年04月13日 15:57:23
animation objects have a private _stop() method. That might have to be a
workaround.
On Sun, Apr 12, 2015 at 9:24 AM, Thomas Caswell <tca...@gm...> wrote:
> You can
>
>
> ```
>
> #import matplotlib
>
> #matplotlib.use('nbagg')
>
> #%matplotlib nbagg
>
> import numpy as np
>
> import matplotlib.pyplot as plt
>
> import matplotlib.animation as animate
>
>
> class Testing(object):
>
> def __init__(self, ):
>
> self.fig = plt.figure()
>
> array = np.random.rand(4,5)
>
> array = np.zeros((4,5))
>
> self.pc = plt.pcolor(array, edgecolor='k', linewidth=1.,
> animated=True)
>
> self.pc.set_clim([0, 1])
>
> self.points = [plt.scatter(np.random.rand(), np.random.rand(),
> animated=True)]
>
>
> def update(self, iter_num):
>
> array = np.random.rand(4*5)
>
> self.pc.set_array(array)
>
> for point in self.points:
>
> point.set_offsets([np.random.rand(), np.random.rand()])
>
>
> return (self.pc, ) + tuple(self.points)
>
>
>
> test = Testing()
>
> ani = animate.FuncAnimation(test.fig, test.update, interval=10,
> blit=False, frames=50)
>
> plt.show()
>
> ```
>
> note the addition of the `set_clim` line in the `__init__` method.
>
>
> You can also update the scatter artist in-place. The other changes will
> make it a bit for performant if you use bliting (which does not work with
> nbagg currently)
>
> Sorry I missed that part of the question first time through.
>
> Tom
>
> On Sun, Apr 12, 2015, 08:31 Ryan Nelson <rne...@gm...> wrote:
>
>> Tom,
>>
>> Thanks for the links. It does seem like fragments of my problem are
>> addressed in each of those comments, so I guess I'll have to wait for a bit
>> until those things get resolved. For now, I can just tell my students to
>> restart the IPython kernel each time they run the animation, which isn't
>> that hard. It's too bad that there isn't a 'stop' method now, but it's good
>> to hear that it isn't a completely terrible idea.
>>
>> I do still need help with Question #3 from my original email, though,
>> because it affects both the Qt and nbagg backends, and it is a bit of a
>> show stopper. I can't quite understand why initializing a pcolor(mesh) with
>> random numbers makes it possible to update the array in an animation, but
>> if you use all zeros or ones, it seems to be immutable.
>>
>> Ryan
>>
>> On Sat, Apr 11, 2015 at 8:35 PM, Thomas Caswell <tca...@gm...>
>> wrote:
>>
>>> Ryan,
>>>
>>> I have not looked at your exact issue yet, but there seems to be some
>>> underlying issues with animation and nbagg which we have not tracked down
>>> yet. See:
>>>
>>> https://github.com/matplotlib/matplotlib/pull/4290
>>> https://github.com/matplotlib/matplotlib/issues/4287
>>> https://github.com/matplotlib/matplotlib/issues/4288
>>>
>>> Running until a given condition is an interesting idea, but I think that
>>> means the animation objects needs to have a public 'stop' method first!
>>>
>>> Tom
>>>
>>> On Fri, Apr 10, 2015 at 3:00 PM Ryan Nelson <rne...@gm...>
>>> wrote:
>>>
>>>> Good afternoon, all!
>>>>
>>>> I'm really digging the nbagg backend, and I'm trying to use it to make
>>>> an animation. As the subject suggests, though, I'm having some issues with
>>>> these features. I'm using Python 3.4, Matplotlib 1.4.3, and IPython 3.1.
>>>> Below is a small code sample that emulates my system. The pcolor call can
>>>> be substituted for pcolormesh, and I see the same behavior. (Sorry this is
>>>> a bit long. I tried to break it up as best as possible.)
>>>>
>>>> #############
>>>> #import matplotlib
>>>> #matplotlib.use('nbagg')
>>>> #%matplotlib nbagg
>>>> import numpy as np
>>>> import matplotlib.pyplot as plt
>>>> import matplotlib.animation as animate
>>>>
>>>> class Testing(object):
>>>> def __init__(self, ):
>>>> self.fig = plt.figure()
>>>> array = np.random.rand(4,5)
>>>> #array = np.zeros((4,5))
>>>> self.pc = plt.pcolor(array, edgecolor='k', linewidth=1.)
>>>> self.points = [plt.scatter(np.random.rand(), np.random.rand())]
>>>>
>>>> def update(self, iter_num):
>>>> array = np.random.rand(4*5)
>>>> self.pc.set_array(array)
>>>> for point in self.points:
>>>> point.remove()
>>>> self.points = [plt.scatter(np.random.rand(), np.random.rand())]
>>>>
>>>> test = Testing()
>>>> animate.FuncAnimation(test.fig, test.update, interval=1000, blit=False)
>>>> plt.show()
>>>> ###############
>>>>
>>>> 1. As is, this code runs fine with a Qt backend. It also runs fine as a
>>>> first call in a notebook if the `show` call is commented out and the
>>>> `%matplotlib` line is uncommented. However, if the `show` call is left in
>>>> and the `matplotlib.use` call is uncommented, then the pcolor array
>>>> changes, but the scatterpoint only shows on the first update and then
>>>> disappears forever. What is the difference between these two invocations?
>>>>
>>>> 2. With the `%matplotlib` magic uncommented and `show` removed, the
>>>> first invocation of this as a cell works fine. Closing the figure (with the
>>>> red X) and running the cell again shows two scatter plot points. Running it
>>>> a third time shows three scatter plot points. If you call `plt.clf` in the
>>>> next cell, I get a series of errors as follows:
>>>> _____
>>>> ERROR:tornado.application:Exception in callback <bound method
>>>> TimerTornado._on_timer of <matplotlib.backends.backend_nbagg.TimerTornado
>>>> object at 0x7f894cb10f98>>
>>>> Traceback (most recent call last):
>>>> File "/usr/lib64/python3.4/site-packages/tornado/ioloop.py", line
>>>> 976, in _run
>>>> return self.callback()
>>>> File
>>>> "/usr/lib64/python3.4/site-packages/matplotlib/backend_bases.py", line
>>>> 1290, in _on_timer
>>>> ret = func(*args, **kwargs)
>>>> File "/usr/lib64/python3.4/site-packages/matplotlib/animation.py",
>>>> line 925, in _step
>>>> still_going = Animation._step(self, *args)
>>>> File "/usr/lib64/python3.4/site-packages/matplotlib/animation.py",
>>>> line 784, in _step
>>>> self._draw_next_frame(framedata, self._blit)
>>>> File "/usr/lib64/python3.4/site-packages/matplotlib/animation.py",
>>>> line 803, in _draw_next_frame
>>>> self._draw_frame(framedata)
>>>> File "/usr/lib64/python3.4/site-packages/matplotlib/animation.py",
>>>> line 1106, in _draw_frame
>>>> self._drawn_artists = self._func(framedata, *self._args)
>>>> File "<ipython-input-2-f9290d8f6154>", line 22, in update
>>>> point.remove()
>>>> File "/usr/lib64/python3.4/site-packages/matplotlib/artist.py", line
>>>> 139, in remove
>>>> self._remove_method(self)
>>>> File "/usr/lib64/python3.4/site-packages/matplotlib/axes/_base.py",
>>>> line 1479, in <lambda>
>>>> collection._remove_method = lambda h: self.collections.remove(h)
>>>> ValueError: list.remove(x): x not in list
>>>> ______
>>>> Why does this happen? Is there a way to close the animation cleanly?
>>>>
>>>> 3. If I uncomment the `np.zeros` call, the pcolor array never updates
>>>> irrespective of the backend. I see the same behavior with `np.ones` as
>>>> well, even if the dtype is set to `float`. Is there are a way to start with
>>>> a all-zero pcolor that allow dynamic updates?
>>>>
>>>> 4. I'd like to be able to have the animation run until a certain
>>>> condition is met. Is there a way to code a clean break for the animation?
>>>>
>>>>
>>>> As always, any help is most appreciated!
>>>>
>>>> Ryan
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------
>>>> ------------------
>>>> BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
>>>> Develop your own process in accordance with the BPMN 2 standard
>>>> Learn Process modeling best practices with Bonita BPM through live
>>>> exercises
>>>> http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual-
>>>> event?utm_
>>>> source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_
>>>> campaign=VA_SF_______________________________________________
>>>> Matplotlib-users mailing list
>>>> Mat...@li...
>>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>>>
>>>
>>
>
> ------------------------------------------------------------------------------
> BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
> Develop your own process in accordance with the BPMN 2 standard
> Learn Process modeling best practices with Bonita BPM through live
> exercises
> http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual-
> event?utm_
> source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
From: Jouni K S. <jk...@ik...> - 2015年04月13日 05:37:21
Thanks for the report, I turned it into a github issue: 
https://github.com/matplotlib/matplotlib/issues/4331

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