[Matplotlib-users] matplotlib multiple windows comparison

2013-03-11 Thread Sudheer Joseph
Dear experts,
Is there a way to get back to the prompt after a plot is made and displayed 
with out closing the plot?
The objective is to compare to plots or check some aspect about the plot made 
from the loaded variables. This is the standard behavior of matlab after 
plotting we get the prompt and we can make another plot if we want to compare 
2. I know there is subplot option but it will be of small size if I need to 
make a spatial map at to time intervals and compare. The detail of my 
matplotlib is below


I use Ubuntu 12.04 64 bit version
and

In [3]: matplotlib.get_backend()
Out[3]: 'WXAgg'

In [4]: matplotlib.__version__
Out[4]: '1.2.0'

with best regards,
Sudheer
***
Sudheer Joseph 
Indian National Centre for Ocean Information Services
Ministry of Earth Sciences, Govt. of India
POST BOX NO: 21, IDA Jeedeemetla P.O.
Via Pragathi Nagar,Kukatpally, Hyderabad; Pin:5000 55
Tel:+91-40-23886047(O),Fax:+91-40-23895011(O),
Tel:+91-40-23044600(R),Tel:+91-40-9440832534(Mobile)
E-mail:sjo.in...@gmail.com;sudheer.jos...@yahoo.com
Web- http://oppamthadathil.tripod.com
***



. 
--
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Bugs with Exponent Offset Text

2013-03-11 Thread Nathaniel A. Frissell
Hi, everyone.

I think I found a couple of bugs, but maybe someone knows something
about this before I go filing a bug report.

Matplotlib version: 1.1.1rc

Bug 1: I'm using axis.twiny() to plot two data sets on top of each other
using a shared y-axis.  If the values are large, an exponent multiplier
appears off to the right of the axis labels. The regular ticklabels for
the second data set are correctly plotted on top of the figure.
However, the exponent does not follow.  Here is an example plot (code is
attached): http://sd-work1.ece.vt.edu/offsettext.png

Bug 2: In trying to come up with a work around for bug 1, I tried to use
the axis.xaxis.get_offset_text().get_text() method to grab the text and
then plot it else where.  However, it returns an empty string when I try
to assign it to a variable.  It will do this until I change the state of
the memory some how, such as creating another figure or dropping to the
debugger.  After that, produces the correct value.  Please see the
attached code, lines 24-33.

Thanks for any help you may have,
Nathaniel
import numpy as np
from matplotlib import pyplot as mp

mp.ion()
yData   = np.arange(500)
xData1  = yData**2
xData2  = yData**3

fig = mp.figure()
pl=1
ax1 = mp.subplot(111)
mp.plot(xData1,yData)
xfm = mp.gca().xaxis.get_major_formatter()
xfm.set_powerlimits([ -3, 3])
mp.xlabel('ax1 X-Axis')
mp.ylabel('Shared Y-Axis')

color   = 'r'
ax2 = ax1.twiny()
mp.plot(xData2,yData,color=color)
xfm = mp.gca().xaxis.get_major_formatter()
xfm.set_powerlimits([ -3, 3])
ax2.set_xlabel('ax2 X-Axis',color=color)
offTxt  = ax2.xaxis.get_offset_text()
offTxt.set_color(color)
ax2.tick_params(axis='x', colors=color)
text= (offTxt.get_text()) #This one isn't going to work.
print text=='',text #This one returns: True ''

mp.figure() #I generate another figure just because I can.

text= offTxt.get_text() #After generating the second figure, now this works.
print text=='',text #This one returns: False 1e8
--
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] real time plotting

2013-03-11 Thread Alan G Isaac
On 3/11/2013 1:59 PM, Neal Becker wrote:
> I go through a compute loop that takes maybe a few seconds per pass, then 
> plot a new point on the graph.

If you are willing to use TkAgg, see the TSPlot class here:
https://econpy.googlecode.com/svn-history/r175/trunk/abm/gridworld/gridworld.py

Alan Isaac


--
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] basemap and imshow at high latitudes

2013-03-11 Thread Hearne, Mike
I have an issue with basemap.imshow() at higher latitudes - namely the
image (high-res topography, in this case) becomes distorted with
respect to the coastlines the higher I go.I assume it has to do
with the image pixels becoming more non-square the higher I go in
latitude.

I found this discussion:
http://matplotlib.1069221.n5.nabble.com/Basemap-and-imshow-td14115.html

where Jeff indicates that the user is using a non-rectangular map
projection.  I'm thinking that is perhaps my problem (I'm using
Transverse Mercator), but I'm not sure which projections Basemap
supports that *are* rectangular.

Or perhaps it's something else entirely.

Any hints?

Thanks,

Mike Hearne

--
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Plotting with WxAgg backend hangs

2013-03-11 Thread Brendan Barnwell
I'm 64-bit Windows 7 with matplotlib 1.2.0 and WxPython 2.8.12.1.  I 
was fiddling around with some of the different backends to see what 
they look like and I found that the WxAgg backend doesn't work:

Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit 
(AMD64)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
 >>> import matplotlib as mpl
 >>> mpl.use('WxAgg')
 >>> from matplotlib import pyplot
 >>> pyplot.ion()
 >>> pyplot.plot([1, 2, 3])
[]
 >>>

When I do the plot, the figure windows appears, but it's blank 
(without even a proper blank background, just a white area) and 
immediately shows "Not responding".  I have to kill the window, and 
doing so crashes the Python session.  However, it works without the 
"ion()" call: I can then call show() and see the plot fine.

I have wxPython working fine in other apps.  In fact, what's 
especially odd is that I actually have an app that directly uses 
FigureCanvasWxAgg to embed matplotlib graphs in a GUI, and this seems 
to work fine.  So it seems the problem is somehow in matplotlib's own 
management of the interactive figure window.

There was a previous question about a similar WxAgg issue on the list 
( 
http://matplotlib.1069221.n5.nabble.com/trouble-with-show-not-drawing-in-interactive-mode-w-WxAgg-td39110.html
 
), but there was no real answer: the poster just decided not to use 
WxAgg.  But aren't we really supposed to be able to use WxAgg 
interactively?

Thanks,
-- 
Brendan Barnwell
"Do not follow where the path may lead.  Go, instead, where there is 
no path, and leave a trail."
--author unknown

--
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] MPL 1.2.0 crash with py2exe on Athlon PC

2013-03-11 Thread Werner F. Bruhin
Hi,

Some time ago I tried to upgrade from an old version of mpl 0.99 to 1.0 
but couldn't get it to work with py2exe and running on a Athlon PC.

I finally got around to upgrade things and have another go at this.

I am now on:
Python 2.7
Numpy 1.6.1  /arch nosse
mpl 1.2.0

I see a hard crash on the Athlon PC (i.e. no traceback and the MS Win 
error "App encountered a problem, do you want to report to MS".

Trying to narrow it down I don't think it has to do with numpy as I use 
it elsewhere in the app together with wxPython/FloatCanvas without any 
issue and when I track where the crash is happening with print 
statements it happens on this line:

 print 'plot panel 1'

 # initialize matplotlib stuff
 self.figure = mpl.figure.Figure(figsize=(5, 4), dpi=75,
 facecolor='white', 
edgecolor='white')
 print 'plot panel 2'

I still see the first print statement but not the second, my imports are 
as follows:

import matplotlib as mpl
mpl.use('WXAgg')
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as 
FigureCanvas

I know I don't provide a lot of information (at least not yet), but has 
anyone come across some similar crash with py2exe and mpl when one 
creates a Figure?

Any tips on how to further narrow this down or even better on what is 
needed to fix it are very welcome.

Best regards
Werner

--
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] real time plotting

2013-03-11 Thread David Hoese
I agree, I don't think that will work with mpl's animation stuff or at 
least I wouldn't want to do it that way. I've created GUIs that received 
data from a weather instrument in real-time. I did method 3 that I 
mentioned before because I knew the scientists using it were going to 
want more and more features.


...I FOUND A WAY FOR YOU TO CHEAT:
You can use the Qt "processEvents()" method to have it process 
drawing/painting operation between the event loop iterations. This 
method is frowned upon when doing real Qt GUIs, but eh go for it. If you 
aren't doing anything more serious than watching the output of your 
processing as it goes then try this:


import matplotlib

matplotlib.use('qt4agg')

import matplotlib as mpl

import matplotlib.pyplot as plt
plt.ion()
import numpy as np
from time import sleep
from PyQt4 import QtGui,QtCore
fig=plt.figure()
plt.axis([0,1000,0,1])

i=0
x=list()
y=list()

while i <1000:
temp_y=np.random.random()
x.append(i)
y.append(temp_y)
plt.scatter(i,temp_y)
i+=1
plt.draw()
sleep(1)
QtGui.qApp.processEvents()

Good luck,
Dave

On 3/11/13 12:59 PM, Neal Becker wrote:
I go through a compute loop that takes maybe a few seconds per pass, 
then plot a new point on the graph.  Do I have to?  No - I thought mpl 
was supposed to do this and wanted to learn how.  If it really doesn't 
work I'll do something else.


I don't think animation is correct here - I had the impression 
animation is where my update would be run as a callback, with a main 
loop that calls me periodically.  Could that fit the model I 
described, where a lengthy computation produces a new value every 
few/10s of seconds?



On Mon, Mar 11, 2013 at 1:55 PM, David Hoese > wrote:


Someone may have to correct me, but I think this has to do with
the Qt4 event loop and it not being run properly. When you get
into real time plotting it can get kind of tricky. In your case (I
got the same results). I have made real-time PyQt4 GUIs before and
have always used separate QThreads and Qt signals/slots to update
the plot. I've never used GTK so I'm not sure why that worked vs
Qt, I would think they would use similar principles but matplotlib
does some magic behind the scenes sometimes. You can see different
results if you comment out the while loop and import the module
into your python/ipython interpreter. After doing this you'll see
the figure pop up (you don't even need the fig.canvas.show() for
this part if interactive mode is on. I went one step further and
turned the while loop into a function:

def one_iter(i):
# Contents of while loop

Calling this in the interpreter shows the figure updating after
each call, but running in a loop (even with sleep) won't show any
updates until the loop is done. In my opinion you have a few
choices that really depend on your programming comfort level:

1. Don't make a real-time plot.
Do you really need a real-time plot that updates from some
external source?
2. Maybe you should look at the matplotlib animation functionality
(http://matplotlib.org/api/animation_api.html). I like this
tutorial:
http://jakevdp.github.com/blog/2012/08/18/matplotlib-animation-tutorial/.
This won't get you a real-time GUI exactly, but it can help if
what you're doing isn't too complicated. It can also be nice for
making videos of plot animations.
3. If you need a GUI with multiple plots and you need for future
feature creep, I would research making PyQt4 GUIs, QThreads, Qt
signals and slots, and putting matplotlib figures into a PyQt4
GUI. This is complex if you are not familiar with GUI programming
and will take a while.

Sorry I couldn't be of more help, but it really depends on what
exactly you are doing.  Mainly, what do you mean by real-time? Do
you really mean animation? Let me know what you come up with, I'm
interested.

-Dave

P.S. Why use a while loop? You can do the same thing with:

for i in range(1000):
# Do stuff


On 3/11/13 10:34 AM, Neal Becker wrote:

I added fig.canvas.show(). It still does nothing.

If I add
mpl.use ('GTK'), now it seems to be doing realtime plotting.

import matplotlib as mpl

import matplotlib.pyplot as plt
plt.ion()
import numpy as np
fig=plt.figure()
plt.axis([0,1000,0,1])

i=0
x=list()
y=list()

fig.canvas.show()
while i <1000:
temp_y=np.random.random()
x.append(i)
y.append(temp_y)
plt.scatter(i,temp_y)
i+=1
plt.draw()



On Mon, Mar 11, 2013 at 10:35 AM, David Hoese mailto:dho...@gmail.com>> wrote:

Oops forgot to change the subject line.

On 3/11/13 9:34 AM, David Hoese wrote:

You likely need to "show()" the canvas. I usually do this
by calling "fig.canvas.show()" befo

Re: [Matplotlib-users] real time plotting

2013-03-11 Thread Neal Becker
I go through a compute loop that takes maybe a few seconds per pass, then
plot a new point on the graph.  Do I have to?  No - I thought mpl was
supposed to do this and wanted to learn how.  If it really doesn't work
I'll do something else.

I don't think animation is correct here - I had the impression animation is
where my update would be run as a callback, with a main loop that calls me
periodically.  Could that fit the model I described, where a lengthy
computation produces a new value every few/10s of seconds?


On Mon, Mar 11, 2013 at 1:55 PM, David Hoese  wrote:

>  Someone may have to correct me, but I think this has to do with the Qt4
> event loop and it not being run properly. When you get into real time
> plotting it can get kind of tricky. In your case (I got the same results).
> I have made real-time PyQt4 GUIs before and have always used separate
> QThreads and Qt signals/slots to update the plot. I've never used GTK so
> I'm not sure why that worked vs Qt, I would think they would use similar
> principles but matplotlib does some magic behind the scenes sometimes. You
> can see different results if you comment out the while loop and import the
> module into your python/ipython interpreter. After doing this you'll see
> the figure pop up (you don't even need the fig.canvas.show() for this part
> if interactive mode is on. I went one step further and turned the while
> loop into a function:
>
> def one_iter(i):
> # Contents of while loop
>
> Calling this in the interpreter shows the figure updating after each call,
> but running in a loop (even with sleep) won't show any updates until the
> loop is done. In my opinion you have a few choices that really depend on
> your programming comfort level:
>
> 1. Don't make a real-time plot.
> Do you really need a real-time plot that updates from some
> external source?
> 2. Maybe you should look at the matplotlib animation functionality (
> http://matplotlib.org/api/animation_api.html). I like this tutorial:
> http://jakevdp.github.com/blog/2012/08/18/matplotlib-animation-tutorial/.
> This won't get you a real-time GUI exactly, but it can help if what you're
> doing isn't too complicated. It can also be nice for making videos of plot
> animations.
> 3. If you need a GUI with multiple plots and you need for future feature
> creep, I would research making PyQt4 GUIs, QThreads, Qt signals and slots,
> and putting matplotlib figures into a PyQt4 GUI. This is complex if you are
> not familiar with GUI programming and will take a while.
>
> Sorry I couldn't be of more help, but it really depends on what exactly
> you are doing.  Mainly, what do you mean by real-time? Do you really mean
> animation? Let me know what you come up with, I'm interested.
>
> -Dave
>
> P.S. Why use a while loop? You can do the same thing with:
>
> for i in range(1000):
> # Do stuff
>
>
> On 3/11/13 10:34 AM, Neal Becker wrote:
>
>  I added fig.canvas.show(). It still does nothing.
>
>  If I add
> mpl.use ('GTK'), now it seems to be doing realtime plotting.
>
>  import matplotlib as mpl
>
>  import matplotlib.pyplot as plt
> plt.ion()
> import numpy as np
> fig=plt.figure()
> plt.axis([0,1000,0,1])
>
>  i=0
> x=list()
> y=list()
>
>  fig.canvas.show()
> while i <1000:
> temp_y=np.random.random()
> x.append(i)
> y.append(temp_y)
> plt.scatter(i,temp_y)
> i+=1
> plt.draw()
>
>
>
> On Mon, Mar 11, 2013 at 10:35 AM, David Hoese  wrote:
>
>> Oops forgot to change the subject line.
>>
>> On 3/11/13 9:34 AM, David Hoese wrote:
>>
>>> You likely need to "show()" the canvas. I usually do this by calling
>>> "fig.canvas.show()" before the for loop.
>>> Since you are using a Qt4 backend the canvas used by the figure is a
>>> QWidget, the basic component of a Qt4 GUI. I don't know if there is a more
>>> matplotlib specific way of doing this, but when dealing with a larger
>>> system this is how I do it.
>>>
>>> I would also add a sleep ("from time import sleep") of a couple seconds
>>> for testing to make sure you are getting through the entire for loop before
>>> you can see it.
>>>
>>> Please CC in any replies, thanks.
>>>
>>> -Dave
>>>
>>>
>>> On 3/11/13 8:58 AM, ndbeck...@gmail.com wrote:
>>>
 I want to update a plot in real time.  I did some goog search, and saw
 various
 answers.  Trouble is, they aren't working.

 Here's a typical example:

 import matplotlib.pyplot as plt
 import numpy as np
 fig=plt.figure()
 plt.axis([0,1000,0,1])

 i=0
 x=list()
 y=list()

 while i <1000:
  temp_y=np.random.random()
  x.append(i)
  y.append(temp_y)
  plt.scatter(i,temp_y)
  i+=1
  plt.draw()

 If I run this, it draws nothing.

 This is my matplotlibrc:
 backend : Qt4Agg
 mathtext.fontset: stix

>>>
>>>
>>
>
>
--
Symantec Endpoint Protection 12

Re: [Matplotlib-users] real time plotting

2013-03-11 Thread David Hoese
Someone may have to correct me, but I think this has to do with the Qt4 
event loop and it not being run properly. When you get into real time 
plotting it can get kind of tricky. In your case (I got the same 
results). I have made real-time PyQt4 GUIs before and have always used 
separate QThreads and Qt signals/slots to update the plot. I've never 
used GTK so I'm not sure why that worked vs Qt, I would think they would 
use similar principles but matplotlib does some magic behind the scenes 
sometimes. You can see different results if you comment out the while 
loop and import the module into your python/ipython interpreter. After 
doing this you'll see the figure pop up (you don't even need the 
fig.canvas.show() for this part if interactive mode is on. I went one 
step further and turned the while loop into a function:


def one_iter(i):
# Contents of while loop

Calling this in the interpreter shows the figure updating after each 
call, but running in a loop (even with sleep) won't show any updates 
until the loop is done. In my opinion you have a few choices that really 
depend on your programming comfort level:


1. Don't make a real-time plot.
Do you really need a real-time plot that updates from some 
external source?
2. Maybe you should look at the matplotlib animation functionality 
(http://matplotlib.org/api/animation_api.html). I like this tutorial: 
http://jakevdp.github.com/blog/2012/08/18/matplotlib-animation-tutorial/. This 
won't get you a real-time GUI exactly, but it can help if what you're 
doing isn't too complicated. It can also be nice for making videos of 
plot animations.
3. If you need a GUI with multiple plots and you need for future feature 
creep, I would research making PyQt4 GUIs, QThreads, Qt signals and 
slots, and putting matplotlib figures into a PyQt4 GUI. This is complex 
if you are not familiar with GUI programming and will take a while.


Sorry I couldn't be of more help, but it really depends on what exactly 
you are doing.  Mainly, what do you mean by real-time? Do you really 
mean animation? Let me know what you come up with, I'm interested.


-Dave

P.S. Why use a while loop? You can do the same thing with:

for i in range(1000):
# Do stuff

On 3/11/13 10:34 AM, Neal Becker wrote:

I added fig.canvas.show(). It still does nothing.

If I add
mpl.use ('GTK'), now it seems to be doing realtime plotting.

import matplotlib as mpl

import matplotlib.pyplot as plt
plt.ion()
import numpy as np
fig=plt.figure()
plt.axis([0,1000,0,1])

i=0
x=list()
y=list()

fig.canvas.show()
while i <1000:
temp_y=np.random.random()
x.append(i)
y.append(temp_y)
plt.scatter(i,temp_y)
i+=1
plt.draw()



On Mon, Mar 11, 2013 at 10:35 AM, David Hoese > wrote:


Oops forgot to change the subject line.

On 3/11/13 9:34 AM, David Hoese wrote:

You likely need to "show()" the canvas. I usually do this by
calling "fig.canvas.show()" before the for loop.
Since you are using a Qt4 backend the canvas used by the
figure is a QWidget, the basic component of a Qt4 GUI. I don't
know if there is a more matplotlib specific way of doing this,
but when dealing with a larger system this is how I do it.

I would also add a sleep ("from time import sleep") of a
couple seconds for testing to make sure you are getting
through the entire for loop before you can see it.

Please CC in any replies, thanks.

-Dave


On 3/11/13 8:58 AM, ndbeck...@gmail.com
 wrote:

I want to update a plot in real time.  I did some goog
search, and saw various
answers.  Trouble is, they aren't working.

Here's a typical example:

import matplotlib.pyplot as plt
import numpy as np
fig=plt.figure()
plt.axis([0,1000,0,1])

i=0
x=list()
y=list()

while i <1000:
 temp_y=np.random.random()
 x.append(i)
 y.append(temp_y)
 plt.scatter(i,temp_y)
 i+=1
 plt.draw()

If I run this, it draws nothing.

This is my matplotlibrc:
backend : Qt4Agg
mathtext.fontset: stix






--
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] another failed attempt (realtime)

2013-03-11 Thread Neal Becker
Doesn't matter, still doesn't rescale without calling ax.axis


On Mon, Mar 11, 2013 at 1:48 PM, Sterling Smith wrote:

> Neal,
>
> You might try
> mpl.use('GTKAgg')
> as I have seen problems with lone GTK.  Also you might change this in your
> .matplotlibrc file if possible.
>
> -Sterling
>
> On Mar 11, 2013, at 10:43AM, Neal Becker wrote:
>
> > According to other examples I see on the web, use of 'relim' and
> > 'autoscale_view' should result in rescaling and drawing new axes.
>  Doesn't.
> > Unless I explicity call
> > ax.axis ([...])
> > I don't get any rescaling.
> >
> > Here's an example:
> >
> > import matplotlib as mpl
> > mpl.use ('GTK')
> > import matplotlib.pyplot as plt
> > plt.ion()
> > import numpy as np
> > fig=plt.figure()
> > ax = fig.add_subplot(111)
> > x_values = [0]
> > ax.axis ([0, 10, -1, 1])
> > y_values = [0]
> >
> > i=0
> > x=list()
> > y=list()
> >
> > while i <1000:
> >x.append (i)
> >y.append (2*i)
> >line, = plt.plot (x, y, 'x-')
> >
> > ##ax.axis ([min(x),max(x),min(y),max(y)])
> >
> >ax.relim()
> ># update ax.viewLim using the new dataLim
> >ax.autoscale_view()
> >plt.draw()
> >i+=1
> >
> >
> >
> >
> --
> > Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester
> > Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the
> > endpoint security space. For insight on selecting the right partner to
> > tackle endpoint security challenges, access the full report.
> > http://p.sf.net/sfu/symantec-dev2dev
> > ___
> > Matplotlib-users mailing list
> > Matplotlib-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
--
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] another failed attempt (realtime)

2013-03-11 Thread Sterling Smith
Neal,

You might try 
mpl.use('GTKAgg')
as I have seen problems with lone GTK.  Also you might change this in your 
.matplotlibrc file if possible.

-Sterling

On Mar 11, 2013, at 10:43AM, Neal Becker wrote:

> According to other examples I see on the web, use of 'relim' and 
> 'autoscale_view' should result in rescaling and drawing new axes.  Doesn't.
> Unless I explicity call 
> ax.axis ([...])
> I don't get any rescaling.
> 
> Here's an example:
> 
> import matplotlib as mpl
> mpl.use ('GTK')
> import matplotlib.pyplot as plt
> plt.ion()
> import numpy as np
> fig=plt.figure()
> ax = fig.add_subplot(111)
> x_values = [0]
> ax.axis ([0, 10, -1, 1])
> y_values = [0]
> 
> i=0
> x=list()
> y=list()
> 
> while i <1000:
>x.append (i)
>y.append (2*i)
>line, = plt.plot (x, y, 'x-')
> 
> ##ax.axis ([min(x),max(x),min(y),max(y)])
> 
>ax.relim()
># update ax.viewLim using the new dataLim
>ax.autoscale_view()
>plt.draw()
>i+=1
> 
> 
> 
> --
> Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
> Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
> endpoint security space. For insight on selecting the right partner to 
> tackle endpoint security challenges, access the full report. 
> http://p.sf.net/sfu/symantec-dev2dev
> ___
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users


--
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] another failed attempt (realtime)

2013-03-11 Thread Neal Becker
According to other examples I see on the web, use of 'relim' and 
'autoscale_view' should result in rescaling and drawing new axes.  Doesn't.
Unless I explicity call 
ax.axis ([...])
I don't get any rescaling.

Here's an example:

import matplotlib as mpl
mpl.use ('GTK')
import matplotlib.pyplot as plt
plt.ion()
import numpy as np
fig=plt.figure()
ax = fig.add_subplot(111)
x_values = [0]
ax.axis ([0, 10, -1, 1])
y_values = [0]

i=0
x=list()
y=list()

while i <1000:
x.append (i)
y.append (2*i)
line, = plt.plot (x, y, 'x-')

##ax.axis ([min(x),max(x),min(y),max(y)])

ax.relim()
# update ax.viewLim using the new dataLim
ax.autoscale_view()
plt.draw()
i+=1



--
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] real time plotting

2013-03-11 Thread Neal Becker
I added fig.canvas.show(). It still does nothing.

If I add
mpl.use ('GTK'), now it seems to be doing realtime plotting.

import matplotlib as mpl

import matplotlib.pyplot as plt
plt.ion()
import numpy as np
fig=plt.figure()
plt.axis([0,1000,0,1])

i=0
x=list()
y=list()

fig.canvas.show()
while i <1000:
temp_y=np.random.random()
x.append(i)
y.append(temp_y)
plt.scatter(i,temp_y)
i+=1
plt.draw()



On Mon, Mar 11, 2013 at 10:35 AM, David Hoese  wrote:

> Oops forgot to change the subject line.
>
> On 3/11/13 9:34 AM, David Hoese wrote:
>
>> You likely need to "show()" the canvas. I usually do this by calling
>> "fig.canvas.show()" before the for loop.
>> Since you are using a Qt4 backend the canvas used by the figure is a
>> QWidget, the basic component of a Qt4 GUI. I don't know if there is a more
>> matplotlib specific way of doing this, but when dealing with a larger
>> system this is how I do it.
>>
>> I would also add a sleep ("from time import sleep") of a couple seconds
>> for testing to make sure you are getting through the entire for loop before
>> you can see it.
>>
>> Please CC in any replies, thanks.
>>
>> -Dave
>>
>>
>> On 3/11/13 8:58 AM, ndbeck...@gmail.com wrote:
>>
>>> I want to update a plot in real time.  I did some goog search, and saw
>>> various
>>> answers.  Trouble is, they aren't working.
>>>
>>> Here's a typical example:
>>>
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> fig=plt.figure()
>>> plt.axis([0,1000,0,1])
>>>
>>> i=0
>>> x=list()
>>> y=list()
>>>
>>> while i <1000:
>>>  temp_y=np.random.random()
>>>  x.append(i)
>>>  y.append(temp_y)
>>>  plt.scatter(i,temp_y)
>>>  i+=1
>>>  plt.draw()
>>>
>>> If I run this, it draws nothing.
>>>
>>> This is my matplotlibrc:
>>> backend : Qt4Agg
>>> mathtext.fontset: stix
>>>
>>
>>
>
--
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] real time plotting

2013-03-11 Thread David Hoese
Oops forgot to change the subject line.

On 3/11/13 9:34 AM, David Hoese wrote:
> You likely need to "show()" the canvas. I usually do this by calling 
> "fig.canvas.show()" before the for loop.
> Since you are using a Qt4 backend the canvas used by the figure is a 
> QWidget, the basic component of a Qt4 GUI. I don't know if there is a 
> more matplotlib specific way of doing this, but when dealing with a 
> larger system this is how I do it.
>
> I would also add a sleep ("from time import sleep") of a couple 
> seconds for testing to make sure you are getting through the entire 
> for loop before you can see it.
>
> Please CC in any replies, thanks.
>
> -Dave
>
> On 3/11/13 8:58 AM, ndbeck...@gmail.com wrote:
>> I want to update a plot in real time.  I did some goog search, and 
>> saw various
>> answers.  Trouble is, they aren't working.
>>
>> Here's a typical example:
>>
>> import matplotlib.pyplot as plt
>> import numpy as np
>> fig=plt.figure()
>> plt.axis([0,1000,0,1])
>>
>> i=0
>> x=list()
>> y=list()
>>
>> while i <1000:
>>  temp_y=np.random.random()
>>  x.append(i)
>>  y.append(temp_y)
>>  plt.scatter(i,temp_y)
>>  i+=1
>>  plt.draw()
>>
>> If I run this, it draws nothing.
>>
>> This is my matplotlibrc:
>> backend : Qt4Agg
>> mathtext.fontset: stix
>


--
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Matplotlib-users Digest, Vol 82, Issue 16

2013-03-11 Thread David Hoese
You likely need to "show()" the canvas. I usually do this by calling 
"fig.canvas.show()" before the for loop.
Since you are using a Qt4 backend the canvas used by the figure is a 
QWidget, the basic component of a Qt4 GUI. I don't know if there is a 
more matplotlib specific way of doing this, but when dealing with a 
larger system this is how I do it.

I would also add a sleep ("from time import sleep") of a couple seconds 
for testing to make sure you are getting through the entire for loop 
before you can see it.

Please CC in any replies, thanks.

-Dave

On 3/11/13 8:58 AM, ndbeck...@gmail.com wrote:
> I want to update a plot in real time.  I did some goog search, and saw various
> answers.  Trouble is, they aren't working.
>
> Here's a typical example:
>
> import matplotlib.pyplot as plt
> import numpy as np
> fig=plt.figure()
> plt.axis([0,1000,0,1])
>
> i=0
> x=list()
> y=list()
>
> while i <1000:
>  temp_y=np.random.random()
>  x.append(i)
>  y.append(temp_y)
>  plt.scatter(i,temp_y)
>  i+=1
>  plt.draw()
>
> If I run this, it draws nothing.
>
> This is my matplotlibrc:
> backend : Qt4Agg
> mathtext.fontset: stix


--
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] real time plotting

2013-03-11 Thread Neal Becker
mpl is 1.2.0
Fedora linux


On Mon, Mar 11, 2013 at 9:57 AM, Neal Becker  wrote:

> Tried with/and without plt.ion(), no difference.  Nothing is drawn.  When
> I kill it with C-c, briefly a window is flashed.
>
> import matplotlib as mpl
>
> import matplotlib.pyplot as plt
> plt.ion()
> import numpy as np
> fig=plt.figure()
> plt.axis([0,1000,0,1])
>
> i=0
> x=list()
> y=list()
>
> while i <1000:
> temp_y=np.random.random()
> x.append(i)
> y.append(temp_y)
> plt.scatter(i,temp_y)
> i+=1
> plt.draw()
>
>
>
> On Mon, Mar 11, 2013 at 9:55 AM, Francesco Montesano <
> franz.berges...@gmail.com> wrote:
>
>> Dear Neal,
>>
>> 2013/3/11 Neal Becker 
>>
>>> I want to update a plot in real time.  I did some goog search, and saw
>>> various
>>> answers.  Trouble is, they aren't working.
>>>
>>> Here's a typical example:
>>>
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> fig=plt.figure()
>>> plt.axis([0,1000,0,1])
>>>
>>> i=0
>>> x=list()
>>> y=list()
>>>
>>> while i <1000:
>>> temp_y=np.random.random()
>>> x.append(i)
>>> y.append(temp_y)
>>> plt.scatter(i,temp_y)
>>> i+=1
>>> plt.draw()
>>>
>>> If I run this, it draws nothing.
>>>
>>> This is my matplotlibrc:
>>> backend : Qt4Agg
>>> mathtext.fontset: stix
>>>
>>
>> do you use interactive mode? (plt.ion() before creating the figure)
>> Francesco
>>
>>
>>
>>>
>>
>>
>>>
>>>
>>> --
>>> Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester
>>> Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the
>>> endpoint security space. For insight on selecting the right partner to
>>> tackle endpoint security challenges, access the full report.
>>> http://p.sf.net/sfu/symantec-dev2dev
>>> ___
>>> Matplotlib-users mailing list
>>> Matplotlib-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>>
>>
>>
>
--
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] real time plotting

2013-03-11 Thread Neal Becker
Tried with/and without plt.ion(), no difference.  Nothing is drawn.  When I
kill it with C-c, briefly a window is flashed.

import matplotlib as mpl

import matplotlib.pyplot as plt
plt.ion()
import numpy as np
fig=plt.figure()
plt.axis([0,1000,0,1])

i=0
x=list()
y=list()

while i <1000:
temp_y=np.random.random()
x.append(i)
y.append(temp_y)
plt.scatter(i,temp_y)
i+=1
plt.draw()



On Mon, Mar 11, 2013 at 9:55 AM, Francesco Montesano <
franz.berges...@gmail.com> wrote:

> Dear Neal,
>
> 2013/3/11 Neal Becker 
>
>> I want to update a plot in real time.  I did some goog search, and saw
>> various
>> answers.  Trouble is, they aren't working.
>>
>> Here's a typical example:
>>
>> import matplotlib.pyplot as plt
>> import numpy as np
>> fig=plt.figure()
>> plt.axis([0,1000,0,1])
>>
>> i=0
>> x=list()
>> y=list()
>>
>> while i <1000:
>> temp_y=np.random.random()
>> x.append(i)
>> y.append(temp_y)
>> plt.scatter(i,temp_y)
>> i+=1
>> plt.draw()
>>
>> If I run this, it draws nothing.
>>
>> This is my matplotlibrc:
>> backend : Qt4Agg
>> mathtext.fontset: stix
>>
>
> do you use interactive mode? (plt.ion() before creating the figure)
> Francesco
>
>
>
>>
>
>
>>
>>
>> --
>> Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester
>> Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the
>> endpoint security space. For insight on selecting the right partner to
>> tackle endpoint security challenges, access the full report.
>> http://p.sf.net/sfu/symantec-dev2dev
>> ___
>> Matplotlib-users mailing list
>> Matplotlib-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>
>
>
--
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] real time plotting

2013-03-11 Thread Francesco Montesano
Dear Neal,

2013/3/11 Neal Becker 

> I want to update a plot in real time.  I did some goog search, and saw
> various
> answers.  Trouble is, they aren't working.
>
> Here's a typical example:
>
> import matplotlib.pyplot as plt
> import numpy as np
> fig=plt.figure()
> plt.axis([0,1000,0,1])
>
> i=0
> x=list()
> y=list()
>
> while i <1000:
> temp_y=np.random.random()
> x.append(i)
> y.append(temp_y)
> plt.scatter(i,temp_y)
> i+=1
> plt.draw()
>
> If I run this, it draws nothing.
>
> This is my matplotlibrc:
> backend : Qt4Agg
> mathtext.fontset: stix
>

do you use interactive mode? (plt.ion() before creating the figure)
Francesco



>


>
>
> --
> Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester
> Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the
> endpoint security space. For insight on selecting the right partner to
> tackle endpoint security challenges, access the full report.
> http://p.sf.net/sfu/symantec-dev2dev
> ___
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
--
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] confused by savefig.dpi and how can I set the dpi of jpeg format?

2013-03-11 Thread Chao YUE
Dear all,

I searched the internet but still get confused by how can I save a figure
with high dpi value to jpeg format.

I am using matplotlib 1.2.0 with ubuntu system.
In [14]: mat.__version__
Out[14]: '1.2.0'

I tried both setting the flag "savefig.dpi" flag in matplotlibrc as 300,
and use fig.savefig('temp.jpg',dpi=300) when saving the figure.
But when I checked the figure dpi with GIMP, it says 72.
Under Windows system, it also says the dpi is 72.
In the example above, the "figure.dpi" value is 80.
In [21]: mat.rcParams['figure.dpi']
Out[21]: 80

I tried to set the "figure.dpi" as 300, But then when I check the figure
with interactive window
(I use GTKAgg backend), the figure is too big (getting out of the screen)
to veiw. [But I think this
is fine as the figure size will be depend on dpi, No?]

My workflow is like I always make plot in the interactive mode,
then I adjust the figure size (by draging) or the vertical space and other
things.
Then I click the save button on the interative window or use
"fig = gcf(); fig.savefig" command to save when I feel comfortable with the
figure.

I never published yet and now is working on my first one. So I don't know
if this procedure is good or not.
but anyway, how can I save jpg figures with dpi >300 with the normal size I
see on the screen?

thanks for the help,

Chao

-- 
***
Chao YUE
Laboratoire des Sciences du Climat et de l'Environnement (LSCE-IPSL)
UMR 1572 CEA-CNRS-UVSQ
Batiment 712 - Pe 119
91191 GIF Sur YVETTE Cedex
Tel: (33) 01 69 08 29 02; Fax:01.69.08.77.16

--
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] real time plotting

2013-03-11 Thread Neal Becker
I want to update a plot in real time.  I did some goog search, and saw various 
answers.  Trouble is, they aren't working.

Here's a typical example:

import matplotlib.pyplot as plt
import numpy as np
fig=plt.figure()
plt.axis([0,1000,0,1])

i=0
x=list()
y=list()

while i <1000:
temp_y=np.random.random()
x.append(i)
y.append(temp_y)
plt.scatter(i,temp_y)
i+=1
plt.draw()

If I run this, it draws nothing.

This is my matplotlibrc:
backend : Qt4Agg
mathtext.fontset: stix



--
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users