[Matplotlib-users] Arrows in polar plot at zero degree

2009-10-15 Thread Marie-Therese Horstmann
Hello everybody,

I currently experience some problem with arrows in polar
plots.

Everything is fine, as long as the arrow does not cross
the zero line. Here is an example from the matplotlib
gallery
(http://matplotlib.sourceforge.net/examples/pylab_examples/polar_demo.html),
but with an arrow pointing at 45° outward.
To create the arrow I just added the following line:

arr = plt.arrow(45, 0.5, 0,1 , alpha = 0.5, width = 0.1,
edgecolor = 'black', facecolor = 'green',lw = 2)

You can find the complete source code at the end of the
mail.
If I want to point the arrow in zero direction,

arr = plt.arrow(0, 0.5, 0,1 , alpha = 0.5, width = 0.1,
edgecolor = 'black', facecolor = 'green',lw = 2)

there is only the silhouette of an arrow visible, but
nearly everthing seems to be green (as the arrow should
be). For me it seems as there are some problems with the
periodicity in polar plots.

Does anyone have an idea or a workaround?

Thank you very much in advance

Marie-Therese


---
Source code to reproduce the zero direction "arrow"

import matplotlib
import numpy as np
from matplotlib.pyplot import figure, show, rc, grid

# radar green, solid grid lines
rc('grid', color='#316931', linewidth=1, linestyle='-')
rc('xtick', labelsize=15)
rc('ytick', labelsize=15)

# force square figure and square axes looks better for
polar, IMO
width, height = matplotlib.rcParams['figure.figsize']
size = min(width, height)
# make a square figure
fig = figure(figsize=(size, size))
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8], polar=True,
axisbg='#d5de9c')

r = np.arange(0, 3.0, 0.01)
theta = 2*np.pi*r
ax.plot(theta, r, color='#ee8d18', lw=3)
ax.set_rmax(2.0)
grid(True)

ax.set_title("And there was much rejoicing!", fontsize=20)
#This is the line I added:
arr = plt.arrow(0, 0.5, 0,1 , alpha = 0.5, width = 0.1,
edgecolor = 'black', facecolor = 'green',lw = 2)

show()

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] [Solved] Little issue with blitting technique

2009-10-15 Thread Auré Gourrier
>On Tue, Oct 13, 2009 at 5:06 PM, Laurent Dufr?chou

> wrote:
>> Hey, coparing on how GTK2 example is done I've seen a difference between the 
>> two!
>>
>> In QT4Agg example and WX example the code use:
>>
>> canvas.copy_from_bbox(ax.bbox)
>> replacing all occurrence of ax.bbox with ax.get_figure().bbox solved all the 
>> issue I add.
>>
>
>I'm not sure why using ax.bbox does not work, and it SHOULD work.
>Note that animation_blit_gtk.py DOES use ax.bbox.
>
>> Perhaps we should correct the examples.
>> I can send you the good working example if you want.
>
>If using ax.bbox does not work, than it is a bug (either mpl or the example).
>Unfortunately, this seems to happen only on windows.
>So, please file a bug report (again).
>
>Regards,
>
>-JJ
>

Hy guys,

Just saw your posts. I don't understand the business with the 
ax.get_figure().bbox.
I'm also using windows, and a modified version of the animation_blit_tk.py 
using imshow work fine for me.
I just checked whether the get_figure() changes anything and I get exactly the 
same result in terms of performance.
I attach the code below if it can be of any use.

Cheers,

Auré


# For detailed comments on animation and the techniqes used here, see
# the wiki entry http://www.scipy.org/Cookbook/Matplotlib/Animations

import matplotlib
matplotlib.use('TkAgg')

import sys
import pylab as p
import matplotlib.numerix as nx
import time

from FileUtils10 import fileHandling

# for profiling
tstart = time.time()
tprevious = time.time()

fnamelist = ['']

ax = p.subplot(111)
canvas = ax.figure.canvas

print 't1 ',time.time()-tprevious
tprevious = time.time()

# create the initial line
dataarr = fileHandling(fnamelist[0]).read()
#print dataarr.dtype
#dataarr = dataarr.astype('uint8')
print 't2 ',time.time()-tprevious
tprevious = time.time()

image = p.imshow(dataarr, animated=True)
print 't3 ',time.time()-tprevious
tprevious = time.time()

def run(*args):
tprevious = time.time()
background = canvas.copy_from_bbox(ax.bbox)
print 't4 ',time.time()-tprevious
tprevious = time.time()
while 1:
#print fnamelist[run.cnt]
# restore the clean slate background
canvas.restore_region(background)
print 't5 ',time.time()-tprevious
tprevious = time.time()
# update the data
dataarr = fileHandling(fnamelist[run.cnt]).readMCCD()
dataarr *= run.cnt
print 't6 ',time.time()-tprevious
tprevious = time.time()
image.set_data(dataarr)
print 't7 ',time.time()-tprevious
tprevious = time.time()
# just draw the animated artist
ax.draw_artist(image)
print 't8 ',time.time()-tprevious
tprevious = time.time()
# just redraw the axes rectangle
canvas.blit(ax.bbox)
print 't9 ',time.time()-tprevious
tprevious = time.time()

if fnamelist[run.cnt] == fnamelist[-1]:
# print the timing info and quit
print 'total time:' , time.time()-tstart
print 'FPS:' , 1000./(time.time()-tstart)
p.close('all')
sys.exit()

run.cnt += 1
run.cnt = 0

 
p.subplots_adjust(left=0.3, bottom=0.3) # check for flipy bugs
p.grid() # to ensure proper background restore
manager = p.get_current_fig_manager()
manager.window.after(100, run)

p.show()


  --
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] how to customize informations given by the navigation toolbar ?

2009-10-15 Thread LB
   Hi,


I'm using the twiny fonction to plot two functions on the same axes.
I would like to have both informations displayed on the navigation bar.
Now, I have :
  pan/zoom : x=220, y=80

Is-it possible to customize the toolbar in order to have
  pan/zoom : x1=220, x2=300, y=80


-- 
LB
--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Arrows in polar plot at zero degree

2009-10-15 Thread Marie-Therese Horstmann
Thank you, Scott and Matthias!

I was working with matplotlib-version 0.98xxx.I updated 
it, and now the zero arrow is drawn correctly.

Thank you for your help!

Kind regards,

Marie-Therese

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] all fonts to sans-serif?

2009-10-15 Thread Christian Meesters
Hi,

I'd like to have all sub-fonts (labels, tick labels, text) sans-serif
for a series of plots per default. However the appropriate settings
in .matplotlibrc apparently don't work and this also does not work:

import matplotlib as mpl
mpl.rcParams['text.usetex'] = True
mpl.rcParams['font.family'] = 'sans-serif'
mpl.rcParams['font.sans-serif'] = 'Bitstream Vera Sans'

Any ideas?

TIA
Christian



--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] [Solved] Little issue with blitting technique

2009-10-15 Thread Laurent Dufréchou
Hi Auré,

 

Taking this example (FPS is computed at the end of the loop each 100
frames):

(this is the same example as you but not using FileUtils10)

 



import sys

import pylab as p

import numpy as npy

import time

 

ax2 = p.subplot(212)

ax = p.subplot(211)

canvas = ax.figure.canvas

 

 

# create the initial line

x = npy.arange(0,2*npy.pi,0.01)

line, = p.plot(x, npy.sin(x), animated=True, lw=2)

 

def run(*args):

background = canvas.copy_from_bbox(ax.bbox)

# for profiling

tstart = time.time()

 

while 1:

# restore the clean slate background

canvas.restore_region(background)

# update the data

line.set_ydata(npy.sin(x+run.cnt/10.0))

# just draw the animated artist

ax.draw_artist(line)

# just redraw the axes rectangle

canvas.blit(ax.bbox)

 

if run.cnt==100:

# print the timing info and quit

print 'FPS:' , 100/(time.time()-tstart)

return

 

run.cnt += 1

run.cnt = 0

 

 

p.subplots_adjust(left=0.3, bottom=0.3) # check for flipy bugs

p.grid() # to ensure proper background restore

manager = p.get_current_fig_manager()

manager.window.after(100, run)

 

p.show()



 

This example will work on my machine @99FPS.

Now replace:

ax2 = p.subplot(212)

ax = p.subplot(211)

 

with:

ax = p.subplot(212)

ax2 = p.subplot(211)

 

The image is buggy because the blitting is no more working, still I get
86FPS. So let say no change.

 

Now replace “ax.bbox” with ”ax.get_figure().bbox”:

The bug disappear and I get a small 20 FPS…

 

Tested under windows vista , matplotlib 0.99.1, python 2.5.4.

 

Laurent

Ps: I think ax.getFigure().bbox is getting the whole picture so this is why
it is slower.

 

 

De : Auré Gourrier [mailto:aurelien.gourr...@yahoo.fr] 
Envoyé : jeudi 15 octobre 2009 10:32
À : matplotlib-users@lists.sourceforge.net
Objet : Re: [Matplotlib-users] [Solved] Little issue with blitting technique

 

>On Tue, Oct 13, 2009 at 5:06 PM, Laurent Dufr?chou

> wrote:
>> Hey, coparing on how GTK2 example is done I've seen a difference between
the two!
>>
>> In QT4Agg example and WX example the code use:
>>
>> canvas.copy_from_bbox(ax.bbox)
>> replacing all occurrence of ax.bbox with ax.get_figure().bbox solved all
the issue I add.
>>
>
>I'm not sure why using ax.bbox does not work, and it SHOULD work.
>Note that animation_blit_gtk.py DOES use ax.bbox.
>
>> Perhaps we should correct the examples.
>> I can send you the good working example if you want.
>
>If using ax.bbox does not work, than it is a bug (either mpl or the
example).
>Unfortunately, this seems to happen only on windows.
>So, please file a bug report (again).
>
>Regards,
>
>-JJ
>

Hy guys,

Just saw your posts. I don't understand the business with the
ax.get_figure().bbox.
I'm also using windows, and a modified version of the animation_blit_tk.py
using imshow work fine for me.
I just checked whether the get_figure() changes anything and I get exactly
the same result in terms of performance.
I attach the code below if it can be of any use.

Cheers,

Auré


# For detailed comments on animation and the techniqes used here, see
# the wiki entry http://www.scipy.org/Cookbook/Matplotlib/Animations

import matplotlib
matplotlib.use('TkAgg')

import sys
import pylab as p
import matplotlib.numerix as nx
import time

from FileUtils10 import fileHandling

# for profiling
tstart = time.time()
tprevious = time.time()

fnamelist = ['']

ax = p.subplot(111)
canvas = ax.figure.canvas

print 't1 ',time.time()-tprevious
tprevious = time.time()

# create the initial line
dataarr = fileHandling(fnamelist[0]).read()
#print dataarr.dtype
#dataarr = dataarr.astype('uint8')
print 't2 ',time.time()-tprevious
tprevious = time.time()

image = p.imshow(dataarr, animated=True)
print 't3 ',time.time()-tprevious
tprevious = time.time()

def run(*args):
tprevious = time.time()
background = canvas.copy_from_bbox(ax.bbox)
print 't4 ',time.time()-tprevious
tprevious = time.time()
while 1:
#print fnamelist[run.cnt]
# restore the clean slate background
canvas.restore_region(background)
print 't5 ',time.time()-tprevious
tprevious = time.time()
# update the data
dataarr = fileHandling(fnamelist[run.cnt]).readMCCD()
dataarr *= run.cnt
print 't6 ',time.time()-tprevious
tprevious = time.time()
image.set_data(dataarr)
print 't7 ',time.time()-tprevious
tprevious = time.time()
# just draw the animated artist
ax.draw_artist(image)
print 't8 ',time.time()-tprevious
tprevious = time.time()
# just redraw the axes rectangle
canvas.blit(ax.bbox)
print 't9 ',time.time()-tprevious
tprevious = time.time()

if fnamelist[run.cnt] == fnamelist[-1]:
  

Re: [Matplotlib-users] how to customize informations given by the navigation toolbar ?

2009-10-15 Thread Jae-Joon Lee
It is possible but not so fancy.

Regards,

-JJ

clf()
ax1= subplot(111)
ax2= ax1.twiny()
ax2.set_xlim(0,10)

def report_ax1ax2(x2, y2):
# x2, y2 : data coordinate in ax2
xy_pixel = ax2.transData.transform_point((x2,y2))
x1, y1 = ax1.transData.inverted().transform_point(xy_pixel)
return "x1=%f x2=%f y=%f" % (x1, x2, y2)

ax2.format_coord = report_ax1ax2




On Thu, Oct 15, 2009 at 5:58 AM, LB  wrote:
>    Hi,
>
>
> I'm using the twiny fonction to plot two functions on the same axes.
> I would like to have both informations displayed on the navigation bar.
> Now, I have :
>   pan/zoom : x=220, y=80
>
> Is-it possible to customize the toolbar in order to have
>   pan/zoom : x1=220, x2=300, y=80
>
>
> --
> LB
>
> --
> Come build with us! The BlackBerry(R) Developer Conference in SF, CA
> is the only developer event you need to attend this year. Jumpstart your
> developing skills, take BlackBerry mobile applications to market and stay
> ahead of the curve. Join us from November 9 - 12, 2009. Register now!
> http://p.sf.net/sfu/devconference
> ___
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Log scale for horizontal bar chart (2 bugs)

2009-10-15 Thread Jae-Joon Lee
barh takes an optional argument "log". set this True (or you may set
"left" with some meaningful value, other than 0)

http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.barh

-JJ



On Wed, Oct 14, 2009 at 4:30 PM, Donovan Parks  wrote:
> Hello,
>
> I've encountered two bugs recently in matplotlib. I am hoping someone
> can tell me if these are known issues and if any workarounds have been
> proposed. The bug occurs for horizontal bar chart where the x-axis has
> a log scale:
>
> from pylab import *
>
> val = 3+10*rand(5)     # the bar lengths
> pos = arange(5)+.5    # the bar centers on the y axis
>
> axes = subplot(111)
> axes.barh(pos,val, align='center')
> axes.set_xscale('log')
>
> for a in axes.yaxis.majorTicks:
>  a.tick1On=False
>  a.tick2On=False
>
> for a in axes.xaxis.majorTicks:
>  a.tick1On=True
>  a.tick2On=False
>
> for loc, spine in axes.spines.iteritems():
>  if loc in ['left','right','top']:
>      spine.set_color('none')
>
> show()
>
> If you run this code, you will see that only the end caps of the
> horizontal bars are drawn. Furthermore, tick marks appear at the top
> of the plot (despite explicitly turning them off). If a linear scale
> is used the plot is generated as expected. The issue with tick marks
> appearing incorrectly with log axes appears to occur with many types
> of graphs (well, at least the three I tried).
>
> Can anyone suggest how I might plot a bar chart with a log scale? Is
> there any other way I might force the tick marks at the top to not be
> drawn?
>
> Thanks for any and all help.
>
> Cheers,
> Donovan
>
> --
> Come build with us! The BlackBerry(R) Developer Conference in SF, CA
> is the only developer event you need to attend this year. Jumpstart your
> developing skills, take BlackBerry mobile applications to market and stay
> ahead of the curve. Join us from November 9 - 12, 2009. Register now!
> http://p.sf.net/sfu/devconference
> ___
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users