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 results of 132

<< < 1 2 3 4 5 6 > >> (Page 3 of 6)
From: Ryan N. <rne...@gm...> - 2015年04月16日 12:18:41
Tom,
Thanks for the code. As it was given, I had to change `blit=True` in the
`FuncAnimation` call in order to get this to work in a regular Qt backend.
It did not work with the nbagg backend; however, if I used this code it
works fine:
####
%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=250,
blit=False, frames=50)
plt.show()
####
Also this code solves the problem I was having with several scatter points
being displayed upon multiple runs of the same code cell.
I wasn't familiar with the "animated" keyword, and it is not well
documented yet. Can you give me a quick explanation of what it is doing?
Ben: thanks for the hint about the _stop() method. I might look into that
for my example.
Thank you all for your assistance. Things are working pretty much as I need
now!
Ryan
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
>>>>
>>>
>>
From: Chris O'H. <cm...@gm...> - 2015年04月16日 01:16:08
On 16 April 2015 at 09:51, Benjamin Root <ben...@ou...> wrote:
> A little birdie has told me that someone else is writing a new
> comprehensive matplotlib book (I think it would replace Sandros' book).
> Last I heard from the birdie, he was most of the way done with the
> manuscript. Based on my experience with the edit/review process, I would
> guess 2-3 more months to see it finished and published.
>
>
Oh cool. I'll look out for this. Will it be advertised on this list?
From: Benjamin R. <ben...@ou...> - 2015年04月15日 21:51:50
A little birdie has told me that someone else is writing a new
comprehensive matplotlib book (I think it would replace Sandros' book).
Last I heard from the birdie, he was most of the way done with the
manuscript. Based on my experience with the edit/review process, I would
guess 2-3 more months to see it finished and published.
Cheers!
Ben Root
On Wed, Apr 15, 2015 at 5:43 PM, Chris O'Halloran <cm...@gm...> wrote:
> That's cool. I just found the book provided the right level of detail for
> me to start using QtDesigner with my projects. I can't speak for PyQt5 but
> I don't see the concepts have changed much over the past 5 or so years.
> Agreed though, if you're brand new to python and are only familiar with
> python3 then typing in the code verbatim (python2 style) may cause you
> problems that frustrate the learning process.
>
>
>
> On 15 April 2015 at 19:49, Christian Ambros <am...@ym...> wrote:
>
>> No offense, but it really is outdated. Consider that it'll take two years
>> to do the writing and the lecture work the research material is form 2007
>> to 2008. We now are in 2015. As you can tell from other books which have
>> been published between 2013 and a really helpy book from March, 24th 2015
>> (yes, Benjamin Root wrote it), even they don't cover latest enhancements up
>> to six month before print, (which might be seen a reasonable since changing
>> is easy in a digitized world like ours).
>> A good tutorial for the once, who do not have much experience in this
>> field (I count myself in with the just one and a half year of experience in
>> gui programming) is two things, actual up to six month to a year and
>> straight forward, meaning It tells you what to do and doesn't bother you
>> with design thoughts, API explanations nor tries to teach you programming.
>> I have that book in my possession, but it didn't turn out to be helpful
>> if you do not have the time do read it in whole. If you have the time to
>> spin freely, you still will have conquered 80% by yourself and because it
>> is still outdated for pyhton3 and matplotlib 1.4.3 the use is questionable.
>>
>> cheers,
>> Christian
>>
>> --
>> "A little learning never caused anyone's head to explode!"
>>
>>
>> "Ein wenig Lernen hat noch niemandens Kopf zum Explodieren gebracht!"
>>
>>
>>
>> On Wednesday, April 15, 2015 3:44 AM, Chris O'Halloran <
>> cm...@gm...> wrote:
>>
>>
>> Can I recommend this book. It was very helpful to me in figuring much of
>> this out.
>>
>>
>> https://www.packtpub.com/application-development/matplotlib-python-developers
>>
>> On 14 April 2015 at 18:14, Christian Ambros <am...@ym...> wrote:
>>
>> Hi Ryan,
>>
>> wow! This tutorial is one of the best I ever encountered. Nothing is
>> missing, nothing is cryptic or unclear. What I like best is, that it get's
>> along without using Qt Designer plugins or something similar strange. It's
>> a good basis to start. Maybe you should write a book, covering all the
>> untold things one needs to solve problems like that. I browsed through
>> plenty of books the last weeks and what really is missing, is a cookbook
>> about Qt Designer, Glade and wxWidgets and how to fill it with python3 and
>> it's lib's like matplotlib, pyqtgraph, numpy, sympy etc.
>>
>> I would buy it right away!
>> cheers,
>> Christian
>>
>> --
>> "A little learning never caused anyone's head to explode!"
>>
>>
>> "Ein wenig Lernen hat noch niemandens Kopf zum Explodieren gebracht!"
>>
>>
>>
>> On Friday, April 10, 2015 7:14 PM, Ryan Nelson <rne...@gm...>
>> wrote:
>>
>>
>> Christian,
>>
>> As it turns out, I wrote a blog post (for my terrible blog) about using
>> Designer to create a MPL based GUI (
>> http://blog.rcnelson.com/building-a-matplotlib-gui-with-qt-designer-part-1/).
>> I was going to write this up for the MPL docs... But it got really long (3
>> parts), so I just used my personal site. It got so long because this was
>> the second time I needed to figure this out, and I wanted to make a very
>> detailed outline for my own future reference. Unfortunately, I don't have
>> any experience with Qt5, but I imagine things are similar. I think they
>> just rearranged the locations of some of the widgets, but I'd be curious to
>> hear your experience. I gave up on PyQtdesignerplugins. I think it makes
>> more sense to just use a generic widget as the MPL container.
>>
>> I would be very happy if you had comments for my Qt designer posts.
>>
>> Ryan
>>
>> On Wed, Apr 8, 2015 at 5:47 AM, Christian Ambros <am...@ym...>
>> wrote:
>>
>> Hi Ryan,
>>
>> could you write down, as a tutorial, how you built the example with the
>> qt designer?
>> In the last hours I read all most everything what can be found on the
>> issue of getting matplotlib running with pyqt5 and the designer but as you
>> realized yourself, there is little to be found handy.
>>
>> I'm stuck at a project, which has to use python3, and pyqt5 and am not
>> allowed by my boss to fall back to pyqt4 or qt_compat. He wants to make
>> sure that we use the latest revisions.
>>
>> So I#m very pleased to read that someone already set food on this
>> terrain.
>> Qt5.4.1 is running and I installed PyQtdesingerplugins, in mind that they
>> were written for PyQt4. Are they usable in 5? I added the env-variables to
>> my bashrc, did get any changes shown in the designer. Of course I did a
>> re-log-in to start fresh, but any changes were noteable.
>> What possible ways of embedding matplotlib into a designer base pyqt5-gui
>> else, are there?
>>
>> cheers,
>> Christian
>>
>>
>>
>> --
>> "A little learning never caused anyone's head to explode!"
>>
>>
>> "Ein wenig Lernen hat noch niemandens Kopf zum Explodieren gebracht!"
>>
>>
>>
>> On Wednesday, February 18, 2015 11:59 PM, Ryan Nelson <
>> rne...@gm...> wrote:
>>
>>
>> Hello list,
>>
>> A couple months ago, I spent quite a bit of time trying to figure out how
>> to use Qt designer create a GUI with an embedded MPL window. Unfortunately,
>> the Scipy cookbook page (
>> http://wiki.scipy.org/Cookbook/Matplotlib/Qt_with_IPython_and_Designer)
>> is very outdated. A recent post (
>> http://matplotlib.1069221.n5.nabble.com/Re-Keep-list-of-figures-or-plots-and-flip-through-list-using-UI-td44961.html)
>> brought up some questions about a use case very similar to mine, so I redid
>> my example and was going to write a quick tutorial for the docs.
>>
>> Unfortunately, I'm not a Qt guru, so I thought that I would ask on the
>> list for some advice. The OP and I were both interested in being able to
>> have a list of figures that you could select from to change the plot
>> window. The embedding examples in the docs create subclasses of
>> FigureClass* and embed the plotting figure/axes/etc. This works but gets
>> tricky, though, when trying to switch plots. Also, for interactive IPython
>> work, I didn't like that the plotting objects were mixed in with all the
>> QtGui.QWidget attributes, which makes introspective searching painful. My
>> solution was to create a dictionary of matplotlib.figure.Figure objects
>> that had all of the plotting stuff defined. Then when I select a new plot
>> from the list, the old one is removed and a new FigureClass object is
>> created using the selected Figure object. Has anyone else successfully done
>> something like this? Is there a better way? Also, it seems if I zoom the
>> current plot, change to a new plot, and change back, the zoom region is
>> retained. Anyone know how to reset the zoom region?
>>
>> Attached is my example: "window.py" is the Designer-created main window
>> and "custommpl.py" is the subclass of the main window that I wrote. It's
>> about as short as I could make it.
>>
>> Thanks
>>
>> Ryan
>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
>> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
>> with Interactivity, Sharing, Native Excel Exports, App Integration & more
>> Get technology previously reserved for billion-dollar corporations, FREE
>>
>> http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
>> _______________________________________________
>> 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
>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> 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
>>
>>
>
>
> ------------------------------------------------------------------------------
> 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: Chris O'H. <cm...@gm...> - 2015年04月15日 21:44:02
That's cool. I just found the book provided the right level of detail for
me to start using QtDesigner with my projects. I can't speak for PyQt5 but
I don't see the concepts have changed much over the past 5 or so years.
Agreed though, if you're brand new to python and are only familiar with
python3 then typing in the code verbatim (python2 style) may cause you
problems that frustrate the learning process.
On 15 April 2015 at 19:49, Christian Ambros <am...@ym...> wrote:
> No offense, but it really is outdated. Consider that it'll take two years
> to do the writing and the lecture work the research material is form 2007
> to 2008. We now are in 2015. As you can tell from other books which have
> been published between 2013 and a really helpy book from March, 24th 2015
> (yes, Benjamin Root wrote it), even they don't cover latest enhancements up
> to six month before print, (which might be seen a reasonable since changing
> is easy in a digitized world like ours).
> A good tutorial for the once, who do not have much experience in this
> field (I count myself in with the just one and a half year of experience in
> gui programming) is two things, actual up to six month to a year and
> straight forward, meaning It tells you what to do and doesn't bother you
> with design thoughts, API explanations nor tries to teach you programming.
> I have that book in my possession, but it didn't turn out to be helpful if
> you do not have the time do read it in whole. If you have the time to spin
> freely, you still will have conquered 80% by yourself and because it is
> still outdated for pyhton3 and matplotlib 1.4.3 the use is questionable.
>
> cheers,
> Christian
>
> --
> "A little learning never caused anyone's head to explode!"
>
>
> "Ein wenig Lernen hat noch niemandens Kopf zum Explodieren gebracht!"
>
>
>
> On Wednesday, April 15, 2015 3:44 AM, Chris O'Halloran <cm...@gm...>
> wrote:
>
>
> Can I recommend this book. It was very helpful to me in figuring much of
> this out.
>
>
> https://www.packtpub.com/application-development/matplotlib-python-developers
>
> On 14 April 2015 at 18:14, Christian Ambros <am...@ym...> wrote:
>
> Hi Ryan,
>
> wow! This tutorial is one of the best I ever encountered. Nothing is
> missing, nothing is cryptic or unclear. What I like best is, that it get's
> along without using Qt Designer plugins or something similar strange. It's
> a good basis to start. Maybe you should write a book, covering all the
> untold things one needs to solve problems like that. I browsed through
> plenty of books the last weeks and what really is missing, is a cookbook
> about Qt Designer, Glade and wxWidgets and how to fill it with python3 and
> it's lib's like matplotlib, pyqtgraph, numpy, sympy etc.
>
> I would buy it right away!
> cheers,
> Christian
>
> --
> "A little learning never caused anyone's head to explode!"
>
>
> "Ein wenig Lernen hat noch niemandens Kopf zum Explodieren gebracht!"
>
>
>
> On Friday, April 10, 2015 7:14 PM, Ryan Nelson <rne...@gm...>
> wrote:
>
>
> Christian,
>
> As it turns out, I wrote a blog post (for my terrible blog) about using
> Designer to create a MPL based GUI (
> http://blog.rcnelson.com/building-a-matplotlib-gui-with-qt-designer-part-1/).
> I was going to write this up for the MPL docs... But it got really long (3
> parts), so I just used my personal site. It got so long because this was
> the second time I needed to figure this out, and I wanted to make a very
> detailed outline for my own future reference. Unfortunately, I don't have
> any experience with Qt5, but I imagine things are similar. I think they
> just rearranged the locations of some of the widgets, but I'd be curious to
> hear your experience. I gave up on PyQtdesignerplugins. I think it makes
> more sense to just use a generic widget as the MPL container.
>
> I would be very happy if you had comments for my Qt designer posts.
>
> Ryan
>
> On Wed, Apr 8, 2015 at 5:47 AM, Christian Ambros <am...@ym...>
> wrote:
>
> Hi Ryan,
>
> could you write down, as a tutorial, how you built the example with the qt
> designer?
> In the last hours I read all most everything what can be found on the
> issue of getting matplotlib running with pyqt5 and the designer but as you
> realized yourself, there is little to be found handy.
>
> I'm stuck at a project, which has to use python3, and pyqt5 and am not
> allowed by my boss to fall back to pyqt4 or qt_compat. He wants to make
> sure that we use the latest revisions.
>
> So I#m very pleased to read that someone already set food on this terrain.
> Qt5.4.1 is running and I installed PyQtdesingerplugins, in mind that they
> were written for PyQt4. Are they usable in 5? I added the env-variables to
> my bashrc, did get any changes shown in the designer. Of course I did a
> re-log-in to start fresh, but any changes were noteable.
> What possible ways of embedding matplotlib into a designer base pyqt5-gui
> else, are there?
>
> cheers,
> Christian
>
>
>
> --
> "A little learning never caused anyone's head to explode!"
>
>
> "Ein wenig Lernen hat noch niemandens Kopf zum Explodieren gebracht!"
>
>
>
> On Wednesday, February 18, 2015 11:59 PM, Ryan Nelson <
> rne...@gm...> wrote:
>
>
> Hello list,
>
> A couple months ago, I spent quite a bit of time trying to figure out how
> to use Qt designer create a GUI with an embedded MPL window. Unfortunately,
> the Scipy cookbook page (
> http://wiki.scipy.org/Cookbook/Matplotlib/Qt_with_IPython_and_Designer)
> is very outdated. A recent post (
> http://matplotlib.1069221.n5.nabble.com/Re-Keep-list-of-figures-or-plots-and-flip-through-list-using-UI-td44961.html)
> brought up some questions about a use case very similar to mine, so I redid
> my example and was going to write a quick tutorial for the docs.
>
> Unfortunately, I'm not a Qt guru, so I thought that I would ask on the
> list for some advice. The OP and I were both interested in being able to
> have a list of figures that you could select from to change the plot
> window. The embedding examples in the docs create subclasses of
> FigureClass* and embed the plotting figure/axes/etc. This works but gets
> tricky, though, when trying to switch plots. Also, for interactive IPython
> work, I didn't like that the plotting objects were mixed in with all the
> QtGui.QWidget attributes, which makes introspective searching painful. My
> solution was to create a dictionary of matplotlib.figure.Figure objects
> that had all of the plotting stuff defined. Then when I select a new plot
> from the list, the old one is removed and a new FigureClass object is
> created using the selected Figure object. Has anyone else successfully done
> something like this? Is there a better way? Also, it seems if I zoom the
> current plot, change to a new plot, and change back, the zoom region is
> retained. Anyone know how to reset the zoom region?
>
> Attached is my example: "window.py" is the Designer-created main window
> and "custommpl.py" is the subclass of the main window that I wrote. It's
> about as short as I could make it.
>
> Thanks
>
> Ryan
>
>
>
>
> ------------------------------------------------------------------------------
> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
> with Interactivity, Sharing, Native Excel Exports, App Integration & more
> Get technology previously reserved for billion-dollar corporations, FREE
>
> http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
> _______________________________________________
> 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
>
>
>
>
> ------------------------------------------------------------------------------
> 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: Benjamin R. <ben...@ou...> - 2015年04月15日 14:03:38
"even they don't cover latest enhancements up to six month before print"
In my defense, I was making updates at the last possible moment to cover
changes in the latest release (1.4.3), and provided vague guidance on
things to come, going so far as to replace references to a v1.5 release
with v2.1. My book does not cover all of the backends, and I didn't
explicitly cover Qt5 but only because I didn't have it installed on my
system. By the way, qt_compat *is* the layer one should be targeting for
Qt5. It makes one's application compatible with either PySide or PyQt5, and
it provides the Qt5 interface. It is qt4_compat that is deprecated.
If there is a second edition, I plan to greatly expand on the backends
covered, but that probably won't be for another year, unfortunately.
Cheers!
Ben Root
On Wed, Apr 15, 2015 at 3:49 AM, Christian Ambros <am...@ym...> wrote:
> No offense, but it really is outdated. Consider that it'll take two years
> to do the writing and the lecture work the research material is form 2007
> to 2008. We now are in 2015. As you can tell from other books which have
> been published between 2013 and a really helpy book from March, 24th 2015
> (yes, Benjamin Root wrote it), even they don't cover latest enhancements up
> to six month before print, (which might be seen a reasonable since changing
> is easy in a digitized world like ours).
> A good tutorial for the once, who do not have much experience in this
> field (I count myself in with the just one and a half year of experience in
> gui programming) is two things, actual up to six month to a year and
> straight forward, meaning It tells you what to do and doesn't bother you
> with design thoughts, API explanations nor tries to teach you programming.
> I have that book in my possession, but it didn't turn out to be helpful if
> you do not have the time do read it in whole. If you have the time to spin
> freely, you still will have conquered 80% by yourself and because it is
> still outdated for pyhton3 and matplotlib 1.4.3 the use is questionable.
>
> cheers,
> Christian
>
> --
> "A little learning never caused anyone's head to explode!"
>
>
> "Ein wenig Lernen hat noch niemandens Kopf zum Explodieren gebracht!"
>
>
>
> On Wednesday, April 15, 2015 3:44 AM, Chris O'Halloran <cm...@gm...>
> wrote:
>
>
> Can I recommend this book. It was very helpful to me in figuring much of
> this out.
>
>
> https://www.packtpub.com/application-development/matplotlib-python-developers
>
> On 14 April 2015 at 18:14, Christian Ambros <am...@ym...> wrote:
>
> Hi Ryan,
>
> wow! This tutorial is one of the best I ever encountered. Nothing is
> missing, nothing is cryptic or unclear. What I like best is, that it get's
> along without using Qt Designer plugins or something similar strange. It's
> a good basis to start. Maybe you should write a book, covering all the
> untold things one needs to solve problems like that. I browsed through
> plenty of books the last weeks and what really is missing, is a cookbook
> about Qt Designer, Glade and wxWidgets and how to fill it with python3 and
> it's lib's like matplotlib, pyqtgraph, numpy, sympy etc.
>
> I would buy it right away!
> cheers,
> Christian
>
> --
> "A little learning never caused anyone's head to explode!"
>
>
> "Ein wenig Lernen hat noch niemandens Kopf zum Explodieren gebracht!"
>
>
>
> On Friday, April 10, 2015 7:14 PM, Ryan Nelson <rne...@gm...>
> wrote:
>
>
> Christian,
>
> As it turns out, I wrote a blog post (for my terrible blog) about using
> Designer to create a MPL based GUI (
> http://blog.rcnelson.com/building-a-matplotlib-gui-with-qt-designer-part-1/).
> I was going to write this up for the MPL docs... But it got really long (3
> parts), so I just used my personal site. It got so long because this was
> the second time I needed to figure this out, and I wanted to make a very
> detailed outline for my own future reference. Unfortunately, I don't have
> any experience with Qt5, but I imagine things are similar. I think they
> just rearranged the locations of some of the widgets, but I'd be curious to
> hear your experience. I gave up on PyQtdesignerplugins. I think it makes
> more sense to just use a generic widget as the MPL container.
>
> I would be very happy if you had comments for my Qt designer posts.
>
> Ryan
>
> On Wed, Apr 8, 2015 at 5:47 AM, Christian Ambros <am...@ym...>
> wrote:
>
> Hi Ryan,
>
> could you write down, as a tutorial, how you built the example with the qt
> designer?
> In the last hours I read all most everything what can be found on the
> issue of getting matplotlib running with pyqt5 and the designer but as you
> realized yourself, there is little to be found handy.
>
> I'm stuck at a project, which has to use python3, and pyqt5 and am not
> allowed by my boss to fall back to pyqt4 or qt_compat. He wants to make
> sure that we use the latest revisions.
>
> So I#m very pleased to read that someone already set food on this terrain.
> Qt5.4.1 is running and I installed PyQtdesingerplugins, in mind that they
> were written for PyQt4. Are they usable in 5? I added the env-variables to
> my bashrc, did get any changes shown in the designer. Of course I did a
> re-log-in to start fresh, but any changes were noteable.
> What possible ways of embedding matplotlib into a designer base pyqt5-gui
> else, are there?
>
> cheers,
> Christian
>
>
>
> --
> "A little learning never caused anyone's head to explode!"
>
>
> "Ein wenig Lernen hat noch niemandens Kopf zum Explodieren gebracht!"
>
>
>
> On Wednesday, February 18, 2015 11:59 PM, Ryan Nelson <
> rne...@gm...> wrote:
>
>
> Hello list,
>
> A couple months ago, I spent quite a bit of time trying to figure out how
> to use Qt designer create a GUI with an embedded MPL window. Unfortunately,
> the Scipy cookbook page (
> http://wiki.scipy.org/Cookbook/Matplotlib/Qt_with_IPython_and_Designer)
> is very outdated. A recent post (
> http://matplotlib.1069221.n5.nabble.com/Re-Keep-list-of-figures-or-plots-and-flip-through-list-using-UI-td44961.html)
> brought up some questions about a use case very similar to mine, so I redid
> my example and was going to write a quick tutorial for the docs.
>
> Unfortunately, I'm not a Qt guru, so I thought that I would ask on the
> list for some advice. The OP and I were both interested in being able to
> have a list of figures that you could select from to change the plot
> window. The embedding examples in the docs create subclasses of
> FigureClass* and embed the plotting figure/axes/etc. This works but gets
> tricky, though, when trying to switch plots. Also, for interactive IPython
> work, I didn't like that the plotting objects were mixed in with all the
> QtGui.QWidget attributes, which makes introspective searching painful. My
> solution was to create a dictionary of matplotlib.figure.Figure objects
> that had all of the plotting stuff defined. Then when I select a new plot
> from the list, the old one is removed and a new FigureClass object is
> created using the selected Figure object. Has anyone else successfully done
> something like this? Is there a better way? Also, it seems if I zoom the
> current plot, change to a new plot, and change back, the zoom region is
> retained. Anyone know how to reset the zoom region?
>
> Attached is my example: "window.py" is the Designer-created main window
> and "custommpl.py" is the subclass of the main window that I wrote. It's
> about as short as I could make it.
>
> Thanks
>
> Ryan
>
>
>
>
> ------------------------------------------------------------------------------
> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
> with Interactivity, Sharing, Native Excel Exports, App Integration & more
> Get technology previously reserved for billion-dollar corporations, FREE
>
> http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
> _______________________________________________
> 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
>
>
>
>
> ------------------------------------------------------------------------------
> 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: Christian A. <am...@ym...> - 2015年04月15日 07:52:22
No offense, but it really is outdated. Consider that it'll take two years to do the writing and the lecture work the research material is form 2007 to 2008. We now are in 2015. As you can tell from other books which have been published between 2013 and a really helpy book from March, 24th 2015 (yes, Benjamin Root wrote it), even they don't cover latest enhancements up to six month before print, (which might be seen a reasonable since changing is easy in a digitized world like ours). 
A good tutorial for the once, who do not have much experience in this field (I count myself in with the just one and a half year of experience in gui programming) is two things, actual up to six month to a year and straight forward, meaning It tells you what to do and doesn't bother you with design thoughts, API explanations nor tries to teach you programming. 
I have that book in my possession, but it didn't turn out to be helpful if you do not have the time do read it in whole. If you have the time to spin freely, you still will have conquered 80% by yourself and because it is still outdated for pyhton3 and matplotlib 1.4.3 the use is questionable.
cheers,Christian
 --
"A little learning never caused anyone's head to explode!"
"Ein wenig Lernen hat noch niemandens Kopf zum Explodieren gebracht!" 
 On Wednesday, April 15, 2015 3:44 AM, Chris O'Halloran <cm...@gm...> wrote:
 
 Can I recommend this book. It was very helpful to me in figuring much of this out.
https://www.packtpub.com/application-development/matplotlib-python-developers
On 14 April 2015 at 18:14, Christian Ambros <am...@ym...> wrote:
Hi Ryan,
wow! This tutorial is one of the best I ever encountered. Nothing is missing, nothing is cryptic or unclear. What I like best is, that it get's along without using Qt Designer plugins or something similar strange. It's a good basis to start. Maybe you should write a book, covering all the untold things one needs to solve problems like that. I browsed through plenty of books the last weeks and what really is missing, is a cookbook about Qt Designer, Glade and wxWidgets and how to fill it with python3 and it's lib's like matplotlib, pyqtgraph, numpy, sympy etc.
I would buy it right away!cheers,Christian
 --
"A little learning never caused anyone's head to explode!"
"Ein wenig Lernen hat noch niemandens Kopf zum Explodieren gebracht!" 
 On Friday, April 10, 2015 7:14 PM, Ryan Nelson <rne...@gm...> wrote:
 
 Christian,
As it turns out, I wrote a blog post (for my terrible blog) about using Designer to create a MPL based GUI (http://blog.rcnelson.com/building-a-matplotlib-gui-with-qt-designer-part-1/). I was going to write this up for the MPL docs... But it got really long (3 parts), so I just used my personal site. It got so long because this was the second time I needed to figure this out, and I wanted to make a very detailed outline for my own future reference. Unfortunately, I don't have any experience with Qt5, but I imagine things are similar. I think they just rearranged the locations of some of the widgets, but I'd be curious to hear your experience. I gave up on PyQtdesignerplugins. I think it makes more sense to just use a generic widget as the MPL container. 
I would be very happy if you had comments for my Qt designer posts.
Ryan
On Wed, Apr 8, 2015 at 5:47 AM, Christian Ambros <am...@ym...> wrote:
Hi Ryan,
could you write down, as a tutorial, how you built the example with the qt designer?In the last hours I read all most everything what can be found on the issue of getting matplotlib running with pyqt5 and the designer but as you realized yourself, there is little to be found handy.
I'm stuck at a project, which has to use python3, and pyqt5 and am not allowed by my boss to fall back to pyqt4 or qt_compat. He wants to make sure that we use the latest revisions.
So I#m very pleased to read that someone already set food on this terrain. 
Qt5.4.1 is running and I installed PyQtdesingerplugins, in mind that they were written for PyQt4. Are they usable in 5? I added the env-variables to my bashrc, did get any changes shown in the designer. Of course I did a re-log-in to start fresh, but any changes were noteable.What possible ways of embedding matplotlib into a designer base pyqt5-gui else, are there?
cheers,Christian
 --
"A little learning never caused anyone's head to explode!"
"Ein wenig Lernen hat noch niemandens Kopf zum Explodieren gebracht!" 
 On Wednesday, February 18, 2015 11:59 PM, Ryan Nelson <rne...@gm...> wrote:
 
 Hello list,
A couple months ago, I spent quite a bit of time trying to figure out how to use Qt designer create a GUI with an embedded MPL window. Unfortunately, the Scipy cookbook page (http://wiki.scipy.org/Cookbook/Matplotlib/Qt_with_IPython_and_Designer) is very outdated. A recent post (http://matplotlib.1069221.n5.nabble.com/Re-Keep-list-of-figures-or-plots-and-flip-through-list-using-UI-td44961.html) brought up some questions about a use case very similar to mine, so I redid my example and was going to write a quick tutorial for the docs.
Unfortunately, I'm not a Qt guru, so I thought that I would ask on the list for some advice. The OP and I were both interested in being able to have a list of figures that you could select from to change the plot window. The embedding examples in the docs create subclasses of FigureClass* and embed the plotting figure/axes/etc. This works but gets tricky, though, when trying to switch plots. Also, for interactive IPython work, I didn't like that the plotting objects were mixed in with all the QtGui.QWidget attributes, which makes introspective searching painful. My solution was to create a dictionary of matplotlib.figure.Figure objects that had all of the plotting stuff defined. Then when I select a new plot from the list, the old one is removed and a new FigureClass object is created using the selected Figure object. Has anyone else successfully done something like this? Is there a better way? Also, it seems if I zoom the current plot, change to a new plot, and change back, the zoom region is retained. Anyone know how to reset the zoom region?
Attached is my example: "window.py" is the Designer-created main window and "custommpl.py" is the subclass of the main window that I wrote. It's about as short as I could make it.
Thanks
Ryan
------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
_______________________________________________
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
------------------------------------------------------------------------------
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: Chris O'H. <cm...@gm...> - 2015年04月15日 03:44:01
Can I recommend this book. It was very helpful to me in figuring much of
this out.
https://www.packtpub.com/application-development/matplotlib-python-developers
On 14 April 2015 at 18:14, Christian Ambros <am...@ym...> wrote:
> Hi Ryan,
>
> wow! This tutorial is one of the best I ever encountered. Nothing is
> missing, nothing is cryptic or unclear. What I like best is, that it get's
> along without using Qt Designer plugins or something similar strange. It's
> a good basis to start. Maybe you should write a book, covering all the
> untold things one needs to solve problems like that. I browsed through
> plenty of books the last weeks and what really is missing, is a cookbook
> about Qt Designer, Glade and wxWidgets and how to fill it with python3 and
> it's lib's like matplotlib, pyqtgraph, numpy, sympy etc.
>
> I would buy it right away!
> cheers,
> Christian
>
> --
> "A little learning never caused anyone's head to explode!"
>
>
> "Ein wenig Lernen hat noch niemandens Kopf zum Explodieren gebracht!"
>
>
>
> On Friday, April 10, 2015 7:14 PM, Ryan Nelson <rne...@gm...>
> wrote:
>
>
> Christian,
>
> As it turns out, I wrote a blog post (for my terrible blog) about using
> Designer to create a MPL based GUI (
> http://blog.rcnelson.com/building-a-matplotlib-gui-with-qt-designer-part-1/).
> I was going to write this up for the MPL docs... But it got really long (3
> parts), so I just used my personal site. It got so long because this was
> the second time I needed to figure this out, and I wanted to make a very
> detailed outline for my own future reference. Unfortunately, I don't have
> any experience with Qt5, but I imagine things are similar. I think they
> just rearranged the locations of some of the widgets, but I'd be curious to
> hear your experience. I gave up on PyQtdesignerplugins. I think it makes
> more sense to just use a generic widget as the MPL container.
>
> I would be very happy if you had comments for my Qt designer posts.
>
> Ryan
>
> On Wed, Apr 8, 2015 at 5:47 AM, Christian Ambros <am...@ym...>
> wrote:
>
> Hi Ryan,
>
> could you write down, as a tutorial, how you built the example with the qt
> designer?
> In the last hours I read all most everything what can be found on the
> issue of getting matplotlib running with pyqt5 and the designer but as you
> realized yourself, there is little to be found handy.
>
> I'm stuck at a project, which has to use python3, and pyqt5 and am not
> allowed by my boss to fall back to pyqt4 or qt_compat. He wants to make
> sure that we use the latest revisions.
>
> So I#m very pleased to read that someone already set food on this terrain.
> Qt5.4.1 is running and I installed PyQtdesingerplugins, in mind that they
> were written for PyQt4. Are they usable in 5? I added the env-variables to
> my bashrc, did get any changes shown in the designer. Of course I did a
> re-log-in to start fresh, but any changes were noteable.
> What possible ways of embedding matplotlib into a designer base pyqt5-gui
> else, are there?
>
> cheers,
> Christian
>
>
>
> --
> "A little learning never caused anyone's head to explode!"
>
>
> "Ein wenig Lernen hat noch niemandens Kopf zum Explodieren gebracht!"
>
>
>
> On Wednesday, February 18, 2015 11:59 PM, Ryan Nelson <
> rne...@gm...> wrote:
>
>
> Hello list,
>
> A couple months ago, I spent quite a bit of time trying to figure out how
> to use Qt designer create a GUI with an embedded MPL window. Unfortunately,
> the Scipy cookbook page (
> http://wiki.scipy.org/Cookbook/Matplotlib/Qt_with_IPython_and_Designer)
> is very outdated. A recent post (
> http://matplotlib.1069221.n5.nabble.com/Re-Keep-list-of-figures-or-plots-and-flip-through-list-using-UI-td44961.html)
> brought up some questions about a use case very similar to mine, so I redid
> my example and was going to write a quick tutorial for the docs.
>
> Unfortunately, I'm not a Qt guru, so I thought that I would ask on the
> list for some advice. The OP and I were both interested in being able to
> have a list of figures that you could select from to change the plot
> window. The embedding examples in the docs create subclasses of
> FigureClass* and embed the plotting figure/axes/etc. This works but gets
> tricky, though, when trying to switch plots. Also, for interactive IPython
> work, I didn't like that the plotting objects were mixed in with all the
> QtGui.QWidget attributes, which makes introspective searching painful. My
> solution was to create a dictionary of matplotlib.figure.Figure objects
> that had all of the plotting stuff defined. Then when I select a new plot
> from the list, the old one is removed and a new FigureClass object is
> created using the selected Figure object. Has anyone else successfully done
> something like this? Is there a better way? Also, it seems if I zoom the
> current plot, change to a new plot, and change back, the zoom region is
> retained. Anyone know how to reset the zoom region?
>
> Attached is my example: "window.py" is the Designer-created main window
> and "custommpl.py" is the subclass of the main window that I wrote. It's
> about as short as I could make it.
>
> Thanks
>
> Ryan
>
>
>
>
> ------------------------------------------------------------------------------
> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
> with Interactivity, Sharing, Native Excel Exports, App Integration & more
> Get technology previously reserved for billion-dollar corporations, FREE
>
> http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
> _______________________________________________
> 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: Prahas D. N. <pra...@gm...> - 2015年04月14日 17:17:32
Hi,
Here's another fractal music video, made with matplotlib:
https://www.youtube.com/watch?v=ANftKlKDtXc
Enjoy!
--Prahas
From: Fabrice S. <si...@lm...> - 2015年04月14日 12:28:02
Le mardi 14 avril 2015 à 18:15 +0800, oyster a écrit :
> I am using anaconda(Python 2.7.6 |Anaconda 1.9.2 (32-bit)| (default,
> Nov 11 2013, 10:50:31) [MSC v.1500 32 bit (Intel)] on win32) on
> windows 7 64 bits
> And the matplotlib is 1.4.3, numpy is 1.9.2, and scipy is 0.15.1,
> which are all been updated by 'conda update xx'
> 
> As http://matplotlib.org/api/pyplot_api.html says
> [quote]
> matplotlib.pyplot.imread(*args, **kwargs) Read an image from a file
> into an array.
> 
> Return value is a numpy.array. For grayscale images, the return array
> is MxN. For RGB images, the return value is MxNx3. For RGBA images the
> return value is MxNx4.
> [/quote]
> 
> But if I read a 128*128*8 BPP gray PNG file, the array.shape is (128,
> 128, 3); if I read a 128*128*24BPP color PNG file, the array.shape is
> (128, 128, 4)
Are you sure your png "24bpp" does not have a transparency channel?
-- 
Fabrice
From: oyster <lep...@gm...> - 2015年04月14日 10:15:14
I am using anaconda(Python 2.7.6 |Anaconda 1.9.2 (32-bit)| (default,
Nov 11 2013, 10:50:31) [MSC v.1500 32 bit (Intel)] on win32) on
windows 7 64 bits
And the matplotlib is 1.4.3, numpy is 1.9.2, and scipy is 0.15.1,
which are all been updated by 'conda update xx'
As http://matplotlib.org/api/pyplot_api.html says
[quote]
matplotlib.pyplot.imread(*args, **kwargs) Read an image from a file
into an array.
Return value is a numpy.array. For grayscale images, the return array
is MxN. For RGB images, the return value is MxNx3. For RGBA images the
return value is MxNx4.
[/quote]
But if I read a 128*128*8 BPP gray PNG file, the array.shape is (128,
128, 3); if I read a 128*128*24BPP color PNG file, the array.shape is
(128, 128, 4)
Why? Thanks
[code]
from pylab import *
imgGrayPng=imread('python-gray.png')
print (imgGrayPng.shape) #(128, 128, 3)
imgGrayJpg=imread('python-gray.jpg')
print (imgGrayJpg.shape) #(128, 128)
imgColorPng=imread('python-color.png')
print (imgColorPng.shape) #(128, 128, 4)
imgColorJpg=imread('python-color.jpg')
print (imgColorJpg.shape) #(128, 128, 3)
[/code]
From: Christian A. <am...@ym...> - 2015年04月14日 06:17:22
Hi Ryan,
wow! This tutorial is one of the best I ever encountered. Nothing is missing, nothing is cryptic or unclear. What I like best is, that it get's along without using Qt Designer plugins or something similar strange. It's a good basis to start. Maybe you should write a book, covering all the untold things one needs to solve problems like that. I browsed through plenty of books the last weeks and what really is missing, is a cookbook about Qt Designer, Glade and wxWidgets and how to fill it with python3 and it's lib's like matplotlib, pyqtgraph, numpy, sympy etc.
I would buy it right away!cheers,Christian
 --
"A little learning never caused anyone's head to explode!"
"Ein wenig Lernen hat noch niemandens Kopf zum Explodieren gebracht!" 
 On Friday, April 10, 2015 7:14 PM, Ryan Nelson <rne...@gm...> wrote:
 
 Christian,
As it turns out, I wrote a blog post (for my terrible blog) about using Designer to create a MPL based GUI (http://blog.rcnelson.com/building-a-matplotlib-gui-with-qt-designer-part-1/). I was going to write this up for the MPL docs... But it got really long (3 parts), so I just used my personal site. It got so long because this was the second time I needed to figure this out, and I wanted to make a very detailed outline for my own future reference. Unfortunately, I don't have any experience with Qt5, but I imagine things are similar. I think they just rearranged the locations of some of the widgets, but I'd be curious to hear your experience. I gave up on PyQtdesignerplugins. I think it makes more sense to just use a generic widget as the MPL container. 
I would be very happy if you had comments for my Qt designer posts.
Ryan
On Wed, Apr 8, 2015 at 5:47 AM, Christian Ambros <am...@ym...> wrote:
Hi Ryan,
could you write down, as a tutorial, how you built the example with the qt designer?In the last hours I read all most everything what can be found on the issue of getting matplotlib running with pyqt5 and the designer but as you realized yourself, there is little to be found handy.
I'm stuck at a project, which has to use python3, and pyqt5 and am not allowed by my boss to fall back to pyqt4 or qt_compat. He wants to make sure that we use the latest revisions.
So I#m very pleased to read that someone already set food on this terrain. 
Qt5.4.1 is running and I installed PyQtdesingerplugins, in mind that they were written for PyQt4. Are they usable in 5? I added the env-variables to my bashrc, did get any changes shown in the designer. Of course I did a re-log-in to start fresh, but any changes were noteable.What possible ways of embedding matplotlib into a designer base pyqt5-gui else, are there?
cheers,Christian
 --
"A little learning never caused anyone's head to explode!"
"Ein wenig Lernen hat noch niemandens Kopf zum Explodieren gebracht!" 
 On Wednesday, February 18, 2015 11:59 PM, Ryan Nelson <rne...@gm...> wrote:
 
 Hello list,
A couple months ago, I spent quite a bit of time trying to figure out how to use Qt designer create a GUI with an embedded MPL window. Unfortunately, the Scipy cookbook page (http://wiki.scipy.org/Cookbook/Matplotlib/Qt_with_IPython_and_Designer) is very outdated. A recent post (http://matplotlib.1069221.n5.nabble.com/Re-Keep-list-of-figures-or-plots-and-flip-through-list-using-UI-td44961.html) brought up some questions about a use case very similar to mine, so I redid my example and was going to write a quick tutorial for the docs.
Unfortunately, I'm not a Qt guru, so I thought that I would ask on the list for some advice. The OP and I were both interested in being able to have a list of figures that you could select from to change the plot window. The embedding examples in the docs create subclasses of FigureClass* and embed the plotting figure/axes/etc. This works but gets tricky, though, when trying to switch plots. Also, for interactive IPython work, I didn't like that the plotting objects were mixed in with all the QtGui.QWidget attributes, which makes introspective searching painful. My solution was to create a dictionary of matplotlib.figure.Figure objects that had all of the plotting stuff defined. Then when I select a new plot from the list, the old one is removed and a new FigureClass object is created using the selected Figure object. Has anyone else successfully done something like this? Is there a better way? Also, it seems if I zoom the current plot, change to a new plot, and change back, the zoom region is retained. Anyone know how to reset the zoom region?
Attached is my example: "window.py" is the Designer-created main window and "custommpl.py" is the subclass of the main window that I wrote. It's about as short as I could make it.
Thanks
Ryan
------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
_______________________________________________
Matplotlib-users mailing list
Mat...@li...
https://lists.sourceforge.net/lists/listinfo/matplotlib-users
 
 
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
From: Eric F. <ef...@ha...> - 2015年04月12日 19:27:40
On 2015年04月05日 11:19 PM, giacomo boffi wrote:
> INTRO
> =====
>
> please consider the following code (I'm trying to draw a timeline)
>
> 1 from matplotlib import pyplot, patches
> 2 fig = pyplot.figure()
> 3 ax = fig.add_subplot('111')
> 4 ax.add_patch(patches.Rectangle((1933,0.25), 73, 0.5))
> 5 pyplot.show()
>
> that gives me a plot with the x axis that goes from 0.0 to 1.0,
> now consider
>
> ...
> 5 ax.set_xlim((1933,1933+73))
> 6 pyplot.show()
>
> this gives me an x axis that goes _exactly_ from 1933 to 2006,
> eventually drawing a line superposed to the lower spine
>
> ...
> 5 ax.plot((1933,1933+73),(0,0))
> 6 pyplot.show()
>
> gives me what I really want, that is an x axis running from 1930 to
> 2010, with the limits automatically rounded by matplotlib...
>
> (I noted that the extra line forces a rounding also for the y axis
> limits, but that's not a problem...)
>
> QUESTION
> ========
>
> I want matplotlib to round the limits of the x axis automatically,
> when given explicitly the lower and upper limits of the data, how to?
I think the initial problem is that ax.add_patch() is not triggering the 
autoscaling that you are looking for; the higher-level plot() function 
does so. After your call to ax.add_patch(), try adding 
ax.autoscale_view().
Eric
>
> Thank you in advance
>
From: Thomas C. <tca...@gm...> - 2015年04月12日 13:24:31
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
>>>
>>
>
From: Ryan N. <rne...@gm...> - 2015年04月12日 12:31:29
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
>>
>
From: Thomas C. <tca...@gm...> - 2015年04月12日 01:59:49
I am not really sure what you mean by 'round'. Do you want to suppress the
offset or do you want mpl to pick 'nice' values after you have explicitly
set the limits?
Tom
On Mon, Apr 6, 2015 at 5:27 AM giacomo boffi <gia...@gm...>
wrote:
> INTRO
> =====
>
> please consider the following code (I'm trying to draw a timeline)
>
> 1 from matplotlib import pyplot, patches
> 2 fig = pyplot.figure()
> 3 ax = fig.add_subplot('111')
> 4 ax.add_patch(patches.Rectangle((1933,0.25), 73, 0.5))
> 5 pyplot.show()
>
> that gives me a plot with the x axis that goes from 0.0 to 1.0,
> now consider
>
> ...
> 5 ax.set_xlim((1933,1933+73))
> 6 pyplot.show()
>
> this gives me an x axis that goes _exactly_ from 1933 to 2006,
> eventually drawing a line superposed to the lower spine
>
> ...
> 5 ax.plot((1933,1933+73),(0,0))
> 6 pyplot.show()
>
> gives me what I really want, that is an x axis running from 1930 to
> 2010, with the limits automatically rounded by matplotlib...
>
> (I noted that the extra line forces a rounding also for the y axis
> limits, but that's not a problem...)
>
> QUESTION
> ========
>
> I want matplotlib to round the limits of the x axis automatically,
> when given explicitly the lower and upper limits of the data, how to?
>
> Thank you in advance
>
> --
> "We have met the enemy and he is us."
> --- Pogo.
>
>
> ------------------------------------------------------------
> ------------------
> 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: Thomas C. <tca...@gm...> - 2015年04月12日 01:03:04
Malk,
This is a bit of a gap in mpl currently (but has come up a couple of times (
https://github.com/matplotlib/matplotlib/issues/4217,
https://github.com/matplotlib/matplotlib/issues/2203, and
http://matplotlib.org/devdocs/devel/MEP/MEP24.html).
One of the hold ups has been lack of a developer that uses polar plots
day-to-day and a lack of really clear use cases. I think we have three (at
least) distinct use cases.
 1. origin always an 0, negative radius rotates by pi, always full 2pi
around, always solid circle (no inner axes) (useful for plotting bunches of
vectors against each other)
 2. center is at arbitrary 'r', values less than 'origin' are just not
shown, always full 2pi, no inner axes (use for for dB plots showing power
as function of angle)
 3. inner axes with arbitrary origin, possibly not full 2pi
It is not immediately clear to me if these can all be done with the same
projection or even if they can be done with the 'standard' Axes class or if
we need to user AxesArtist here.
This discussion should probably move to MEP24/the devel list.
What version of mpl are you using? Your example causes seg-faults (!) on
my system, but I have not sorted out why (may be really strange install
issues on my end).
Tom
On Thu, Apr 9, 2015 at 6:08 AM Maik Hoffmann <mai...@b-...> wrote:
> Hello,
> I'm using mpl_toolkits.axisartist.floating_axes.GridHelperCurveLinear
> for creating half-polar plots from 180 degree measurements for receive
> sensitivity.
>
> Working with the measurement values itself is no problem if I let the
> values scaling start at zero.
> If I use normalized values I can plot it also, but if I transform it
> into the dB scale I got a segfault in this lib.
>
> I provide an example. For my problems I would like to have a solution
> that I can either use r limit from -30 to 0 (f3) or changing the tick
> labels in figure f2.
>
> And by the way is there a possibility that the if i want to plot data in
> the range from 80 to 120, that rlim(80,120) would set the 80 to the
> centerpoint? At the moment I got only a small stripe.
>
> [code]
> """Demo of polar plot of arbitrary theta. This is a workaround for MPL's
> polar plot limitation
> to a full 360 deg.
>
> Based on
> http://matplotlib.org/mpl_toolkits/axes_grid/examples/
> demo_floating_axes.py
>
> get from
> https://github.com/neuropy/neuropy/blob/master/neuropy/
> scripts/polar_demo.py
> TODO: license / copyright
> """
>
> from __future__ import division
> from __future__ import print_function
>
> import numpy as np
> import matplotlib.pyplot as plt
>
> from matplotlib.transforms import Affine2D
> from matplotlib.projections import PolarAxes
> from mpl_toolkits.axisartist import angle_helper
> from mpl_toolkits.axisartist.grid_finder import MaxNLocator
> from mpl_toolkits.axisartist.floating_axes import GridHelperCurveLinear,
> FloatingSubplot
>
>
> def fractional_polar_axes(f, thlim=(0, 180), rlim=(0, 1), step=(30, 0.2),
> thlabel='theta', rlabel='r', ticklabels=True,
> theta_offset=0):
> """Return polar axes that adhere to desired theta (in deg) and r
> limits. steps for theta
> and r are really just hints for the locators."""
> th0, th1 = thlim # deg
> r0, r1 = rlim
> thstep, rstep = step
>
> tr_rotate = Affine2D().translate(theta_offset, 0)
> # scale degrees to radians:
> tr_scale = Affine2D().scale(np.pi/180., 1.)
> #pa = axes(polar="true") # Create a polar axis
> pa = PolarAxes
> tr = tr_rotate + tr_scale + pa.PolarTransform()
> theta_grid_locator = angle_helper.LocatorDMS((th1-th0)//thstep)
> r_grid_locator = MaxNLocator((r1-r0)//rstep)
> theta_tick_formatter = angle_helper.FormatterDMS()
>
> grid_helper = GridHelperCurveLinear(tr,
> extremes=(th0, th1, r0, r1),
> grid_locator1=theta_grid_locator,
> grid_locator2=r_grid_locator,
>
> tick_formatter1=theta_tick_formatter,
> tick_formatter2=None)
>
> a = FloatingSubplot(f, 111, grid_helper=grid_helper)
>
> f.add_subplot(a)
>
> # adjust x axis (theta):
> a.axis["bottom"].set_visible(False)
> a.axis["top"].set_axis_direction("bottom") # tick direction
> a.axis["top"].toggle(ticklabels=ticklabels, label=bool(thlabel))
> a.axis["top"].major_ticklabels.set_axis_direction("top")
> a.axis["top"].label.set_axis_direction("top")
>
> # adjust y axis (r):
> a.axis["left"].set_axis_direction("bottom") # tick direction
> a.axis["right"].set_axis_direction("top") # tick direction
> a.axis["left"].toggle(ticklabels=ticklabels, label=bool(rlabel))
>
> # add labels:
> a.axis["top"].label.set_text(thlabel)
> a.axis["left"].label.set_text(rlabel)
>
> # create a parasite axes whose transData is theta, r:
> auxa = a.get_aux_axes(tr)
> # make aux_ax to have a clip path as in a?:
> auxa.patch = a.patch
> # this has a side effect that the patch is drawn twice, and
> possibly over some other
> # artists. So, we decrease the zorder a bit to prevent this:
> a.patch.zorder = -2
>
>
> # add sector lines for both dimensions:
> thticks = grid_helper.grid_info['lon_info'][0]
> rticks = grid_helper.grid_info['lat_info'][0]
> for th in thticks[1:-1]: # all but the first and last
> auxa.plot([th, th], [r0, r1], '--', c='grey', zorder=-1)
> for ri, r in enumerate(rticks):
> # plot first r line as axes border in solid black only if it
> isn't at r=0
> if ri == 0 and r != 0:
> ls, lw, color = 'solid', 2, 'black'
> else:
> ls, lw, color = 'dashed', 1, 'grey'
> # From http://stackoverflow.com/a/19828753/2020363
> auxa.add_artist(plt.Circle([0, 0], radius=r, ls=ls, lw=lw,
> color=color, fill=False,
> transform=auxa.transData._b, zorder=-1))
>
> return auxa
>
>
> if __name__ == '__main__':
> f1 = plt.figure(facecolor='white', figsize=(16/2.54, 12/2.54),
> dpi=600)
> a1 = fractional_polar_axes(f1, thlim=(-90, 90),step=(10,
> 0.2),theta_offset=90)
> # example spiral plot:
> thstep = 10
> th = np.arange(-90, 90+thstep, thstep) # deg
> rstep = 1/(len(th)-1)
> r = np.arange(0, 1+rstep, rstep)
> a1.plot(th, r, 'b')
>
>
> f1.show()
>
> f2 = plt.figure(facecolor='white', figsize=(16/2.54, 12/2.54),
> dpi=600)
> a2 = fractional_polar_axes(f2, thlim=(-90,
> 90),rlim=(0,30),step=(10, 8),theta_offset=90)
> # example spiral plot:
> r2 = 20 * np.log10(r) +30
> a2.plot(th, r2, 'b')
>
> f2.show()
>
> f3 = plt.figure(facecolor='white', figsize=(16/2.54, 12/2.54),
> dpi=600)
> a3 = fractional_polar_axes(f2, thlim=(-90, 90),rlim=(-30,0),
> step=(10, 8),theta_offset=90)
> # example spiral plot:
> r3 = 20 * np.log10(r)
> a3.plot(th, r2, 'b')
>
> f2.show()
>
> [\code]
>
> --
>
>
> ------------------------------------------------------------
> ------------------
> 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: Thomas C. <tca...@gm...> - 2015年04月12日 00:35:54
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
>
From: Thomas C. <tca...@gm...> - 2015年04月11日 13:18:37
We have a pr in to add ternary axes, but unfortunately I do not understand
it well enough to tell you of contours will work.
See https://github.com/matplotlib/matplotlib/pull/3828 and links with in.
Tom
On Sat, Apr 11, 2015, 07:47 nxkryptor nxkr <nxk...@gm...> wrote:
> I am trying to create ternary plots with matplotlib as shown in the figure
> (source
> <http://stackoverflow.com/questions/10879361/ternary-plot-and-filled-contour>).
> The axes are A, B, C and D values should be denoted by contours and the
> points need to be labelled like in figure.
>
> [image: enter image description here]Can such plots be created in
> matplotlib or with Python? This question is already posted on
> stackoverflow
> <http://stackoverflow.com/questions/29512046/how-to-create-ternary-contour-plot-in-python>
> .
>
>
> nxkr
>
> ------------------------------------------------------------------------------
> 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: nxkryptor n. <nxk...@gm...> - 2015年04月11日 11:46:45
I am trying to create ternary plots with matplotlib as shown in the figure (
source
<http://stackoverflow.com/questions/10879361/ternary-plot-and-filled-contour>).
The axes are A, B, C and D values should be denoted by contours and the
points need to be labelled like in figure.
[image: enter image description here]Can such plots be created in
matplotlib or with Python? This question is already posted on stackoverflow
<http://stackoverflow.com/questions/29512046/how-to-create-ternary-contour-plot-in-python>
.
nxkr
From: Ryan N. <rne...@gm...> - 2015年04月10日 19:14:14
Christian,
As it turns out, I wrote a blog post (for my terrible blog) about using
Designer to create a MPL based GUI (
http://blog.rcnelson.com/building-a-matplotlib-gui-with-qt-designer-part-1/).
I was going to write this up for the MPL docs... But it got really long (3
parts), so I just used my personal site. It got so long because this was
the second time I needed to figure this out, and I wanted to make a very
detailed outline for my own future reference. Unfortunately, I don't have
any experience with Qt5, but I imagine things are similar. I think they
just rearranged the locations of some of the widgets, but I'd be curious to
hear your experience. I gave up on PyQtdesignerplugins. I think it makes
more sense to just use a generic widget as the MPL container.
I would be very happy if you had comments for my Qt designer posts.
Ryan
On Wed, Apr 8, 2015 at 5:47 AM, Christian Ambros <am...@ym...> wrote:
> Hi Ryan,
>
> could you write down, as a tutorial, how you built the example with the qt
> designer?
> In the last hours I read all most everything what can be found on the
> issue of getting matplotlib running with pyqt5 and the designer but as you
> realized yourself, there is little to be found handy.
>
> I'm stuck at a project, which has to use python3, and pyqt5 and am not
> allowed by my boss to fall back to pyqt4 or qt_compat. He wants to make
> sure that we use the latest revisions.
>
> So I#m very pleased to read that someone already set food on this terrain.
> Qt5.4.1 is running and I installed PyQtdesingerplugins, in mind that they
> were written for PyQt4. Are they usable in 5? I added the env-variables to
> my bashrc, did get any changes shown in the designer. Of course I did a
> re-log-in to start fresh, but any changes were noteable.
> What possible ways of embedding matplotlib into a designer base pyqt5-gui
> else, are there?
>
> cheers,
> Christian
>
>
>
> --
> "A little learning never caused anyone's head to explode!"
>
>
> "Ein wenig Lernen hat noch niemandens Kopf zum Explodieren gebracht!"
>
>
>
> On Wednesday, February 18, 2015 11:59 PM, Ryan Nelson <
> rne...@gm...> wrote:
>
>
> Hello list,
>
> A couple months ago, I spent quite a bit of time trying to figure out how
> to use Qt designer create a GUI with an embedded MPL window. Unfortunately,
> the Scipy cookbook page (
> http://wiki.scipy.org/Cookbook/Matplotlib/Qt_with_IPython_and_Designer)
> is very outdated. A recent post (
> http://matplotlib.1069221.n5.nabble.com/Re-Keep-list-of-figures-or-plots-and-flip-through-list-using-UI-td44961.html)
> brought up some questions about a use case very similar to mine, so I redid
> my example and was going to write a quick tutorial for the docs.
>
> Unfortunately, I'm not a Qt guru, so I thought that I would ask on the
> list for some advice. The OP and I were both interested in being able to
> have a list of figures that you could select from to change the plot
> window. The embedding examples in the docs create subclasses of
> FigureClass* and embed the plotting figure/axes/etc. This works but gets
> tricky, though, when trying to switch plots. Also, for interactive IPython
> work, I didn't like that the plotting objects were mixed in with all the
> QtGui.QWidget attributes, which makes introspective searching painful. My
> solution was to create a dictionary of matplotlib.figure.Figure objects
> that had all of the plotting stuff defined. Then when I select a new plot
> from the list, the old one is removed and a new FigureClass object is
> created using the selected Figure object. Has anyone else successfully done
> something like this? Is there a better way? Also, it seems if I zoom the
> current plot, change to a new plot, and change back, the zoom region is
> retained. Anyone know how to reset the zoom region?
>
> Attached is my example: "window.py" is the Designer-created main window
> and "custommpl.py" is the subclass of the main window that I wrote. It's
> about as short as I could make it.
>
> Thanks
>
> Ryan
>
>
>
>
> ------------------------------------------------------------------------------
> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
> with Interactivity, Sharing, Native Excel Exports, App Integration & more
> Get technology previously reserved for billion-dollar corporations, FREE
>
> http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
>
From: Ryan N. <rne...@gm...> - 2015年04月10日 18:58:21
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
From: Maik H. <mai...@b-...> - 2015年04月09日 10:06:38
Hello,
I'm using mpl_toolkits.axisartist.floating_axes.GridHelperCurveLinear
for creating half-polar plots from 180 degree measurements for receive 
sensitivity.
Working with the measurement values itself is no problem if I let the 
values scaling start at zero.
If I use normalized values I can plot it also, but if I transform it 
into the dB scale I got a segfault in this lib.
I provide an example. For my problems I would like to have a solution 
that I can either use r limit from -30 to 0 (f3) or changing the tick 
labels in figure f2.
And by the way is there a possibility that the if i want to plot data in 
the range from 80 to 120, that rlim(80,120) would set the 80 to the 
centerpoint? At the moment I got only a small stripe.
[code]
"""Demo of polar plot of arbitrary theta. This is a workaround for MPL's 
polar plot limitation
to a full 360 deg.
Based on 
http://matplotlib.org/mpl_toolkits/axes_grid/examples/demo_floating_axes.py
get from 
https://github.com/neuropy/neuropy/blob/master/neuropy/scripts/polar_demo.py
TODO: license / copyright
"""
from __future__ import division
from __future__ import print_function
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.transforms import Affine2D
from matplotlib.projections import PolarAxes
from mpl_toolkits.axisartist import angle_helper
from mpl_toolkits.axisartist.grid_finder import MaxNLocator
from mpl_toolkits.axisartist.floating_axes import GridHelperCurveLinear, 
FloatingSubplot
def fractional_polar_axes(f, thlim=(0, 180), rlim=(0, 1), step=(30, 0.2),
 thlabel='theta', rlabel='r', ticklabels=True, 
theta_offset=0):
 """Return polar axes that adhere to desired theta (in deg) and r 
limits. steps for theta
 and r are really just hints for the locators."""
 th0, th1 = thlim # deg
 r0, r1 = rlim
 thstep, rstep = step
 tr_rotate = Affine2D().translate(theta_offset, 0)
 # scale degrees to radians:
 tr_scale = Affine2D().scale(np.pi/180., 1.)
 #pa = axes(polar="true") # Create a polar axis
 pa = PolarAxes
 tr = tr_rotate + tr_scale + pa.PolarTransform()
 theta_grid_locator = angle_helper.LocatorDMS((th1-th0)//thstep)
 r_grid_locator = MaxNLocator((r1-r0)//rstep)
 theta_tick_formatter = angle_helper.FormatterDMS()
 grid_helper = GridHelperCurveLinear(tr,
 extremes=(th0, th1, r0, r1),
 grid_locator1=theta_grid_locator,
 grid_locator2=r_grid_locator,
 
tick_formatter1=theta_tick_formatter,
 tick_formatter2=None)
 a = FloatingSubplot(f, 111, grid_helper=grid_helper)
 f.add_subplot(a)
 # adjust x axis (theta):
 a.axis["bottom"].set_visible(False)
 a.axis["top"].set_axis_direction("bottom") # tick direction
 a.axis["top"].toggle(ticklabels=ticklabels, label=bool(thlabel))
 a.axis["top"].major_ticklabels.set_axis_direction("top")
 a.axis["top"].label.set_axis_direction("top")
 # adjust y axis (r):
 a.axis["left"].set_axis_direction("bottom") # tick direction
 a.axis["right"].set_axis_direction("top") # tick direction
 a.axis["left"].toggle(ticklabels=ticklabels, label=bool(rlabel))
 # add labels:
 a.axis["top"].label.set_text(thlabel)
 a.axis["left"].label.set_text(rlabel)
 # create a parasite axes whose transData is theta, r:
 auxa = a.get_aux_axes(tr)
 # make aux_ax to have a clip path as in a?:
 auxa.patch = a.patch
 # this has a side effect that the patch is drawn twice, and 
possibly over some other
 # artists. So, we decrease the zorder a bit to prevent this:
 a.patch.zorder = -2
 # add sector lines for both dimensions:
 thticks = grid_helper.grid_info['lon_info'][0]
 rticks = grid_helper.grid_info['lat_info'][0]
 for th in thticks[1:-1]: # all but the first and last
 auxa.plot([th, th], [r0, r1], '--', c='grey', zorder=-1)
 for ri, r in enumerate(rticks):
 # plot first r line as axes border in solid black only if it 
isn't at r=0
 if ri == 0 and r != 0:
 ls, lw, color = 'solid', 2, 'black'
 else:
 ls, lw, color = 'dashed', 1, 'grey'
 # From http://stackoverflow.com/a/19828753/2020363
 auxa.add_artist(plt.Circle([0, 0], radius=r, ls=ls, lw=lw, 
color=color, fill=False,
 transform=auxa.transData._b, zorder=-1))
 return auxa
if __name__ == '__main__':
 f1 = plt.figure(facecolor='white', figsize=(16/2.54, 12/2.54), dpi=600)
 a1 = fractional_polar_axes(f1, thlim=(-90, 90),step=(10, 
0.2),theta_offset=90)
 # example spiral plot:
 thstep = 10
 th = np.arange(-90, 90+thstep, thstep) # deg
 rstep = 1/(len(th)-1)
 r = np.arange(0, 1+rstep, rstep)
 a1.plot(th, r, 'b')
 f1.show()
 f2 = plt.figure(facecolor='white', figsize=(16/2.54, 12/2.54), dpi=600)
 a2 = fractional_polar_axes(f2, thlim=(-90, 
90),rlim=(0,30),step=(10, 8),theta_offset=90)
 # example spiral plot:
 r2 = 20 * np.log10(r) +30
 a2.plot(th, r2, 'b')
 f2.show()
 f3 = plt.figure(facecolor='white', figsize=(16/2.54, 12/2.54), dpi=600)
 a3 = fractional_polar_axes(f2, thlim=(-90, 90),rlim=(-30,0), 
step=(10, 8),theta_offset=90)
 # example spiral plot:
 r3 = 20 * np.log10(r)
 a3.plot(th, r2, 'b')
 f2.show()
[\code]
-- 
From: Eric F. <ef...@ha...> - 2015年04月08日 22:18:31
On 2015年04月08日 11:15 AM, Jody Klymak wrote:
> Hi Eric,
>
>>> import matplotlib.pyplot as plt
>>> fig, axes = plt.subplots(nrows=2,sharex=True)
>>> axes[0].set_aspect(1.)
>>> axes[0].plot(np.arange(10),np.arange(10))
>>> axes[0].set_ylim([0,24])
>>> axes[0].set_xlim([0,12])
>>> axes[1].plot(np.arange(10),np.arange(10)*2.)
>>> plt.show()
>>>
>>> does not work as I'd expect. axes[0]'s ylim gets changed so that the
>>> line is no longer viewable (= 10-14). In my opinion, the two calls
>>> should work the same, except in the second case, axes[1]'s xlim
>>> should be 0-12.
>>>
>>
>> If you leave out the set_ylim call, it works. Given that you have
>> specified set_ylim[0, 24], how is mpl supposed to know what ylim range
>> you really want, when the axis constraint means it can only plot a
>> small part of the specified range?
>
> It doesn't for me:
>
> import matplotlib.pyplot as plt
> fig, axes = plt.subplots(nrows=2,sharex=True)
> axes[0].set_aspect(1.)
> axes[0].plot(np.arange(10),np.arange(10))
> axes[1].plot(np.arange(10),np.arange(10)*2.)
> plt.show()
>
> still curtails the y limit in axes[0], in my case from ~2.9 to ~6.1 (see
> attached).
Jody, you told it you want x to go from 0 to 12, and have an aspect 
ratio of 1. It is doing exactly that. Are you expecting it to override 
your xlim specification?
>
>> Basically, you have set up conflicting constraints, and mpl failed
>> to resolve the conflict the way you think it should have. Maybe that
>> could be improved, but I warn you, it's a tricky business. Squeeze in
>> one place and things pop out somewhere else.
>
> I'm not clear what the conflicting constraints are. There seems to be
> an unspoken one that sharex=True means the physical size of the axes
> must be the same. That constraint doesn't exist if sharex=False, and
> set_aspect() works as expected. I'm questioning the unspoken
> constraint, and questioning why set_aspect() (or looking at the code
> apply_aspect()) needs to know about shared axes at all. No doubt there
> is a use case I'm missing...
Yes, sharex=True means the x-axis is identical. It's shared. That's 
just what it means, and what it has always meant. That's what it is 
for--to lock together the x axes of two or more Axes.
>
> I *can* see the issue if we think setting aspect ratios should *not*
> change the size of the axes, because changing the aspect ratio changes
> the data limits and then you have a problem checking all the shared axes
> to see which one has the largest data limits. Its particularly
> problematic because I think that apply_aspect() is only called at
> draw()-time. That seems a hard problem, but I'm not sure what the use
> case is for it, so I have trouble wrapping my head around it.
The use case for what--calling apply_aspect at draw time? That's the 
only time it knows everything it needs to know in the general case, when 
there might be pan/zoom/reshape events.
Eric
>
> Thanks, Jody
>
> --
> Jody Klymak
> http://web.uvic.ca/~jklymak/
>
>
>
>
>
>
>
> ------------------------------------------------------------------------------
> 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
>

Showing results of 132

<< < 1 2 3 4 5 6 > >> (Page 3 of 6)
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 によって変換されたページ (->オリジナル) /