Ah, I was a little confused by what you wrote John (I though I had to
access contour through the axes object and the meaning of R, F, dR was
a little unclear..) however using the 'levels' keyword now works. i.e.
plt.contour(x, y, z, levels=[0])
Incidentally, this keyword (levels) is not documented at
http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.contour
and in fact the documentation implies that contour(kx, ky, z, [0])
should work when it does not.
Perhaps the docs could be updated to reflect this?
Brendan
···
On Tue, Nov 3, 2009 at 2:19 PM, Brendan Arnold <brendanarnold@...287...> wrote:
Hi again,
Thanks for the responses, however neither work, the error still
persists. Here are more details...Traceback (most recent call last):
File "C:\Program Files\Python\2.5\lib\lib-tk\Tkinter.py", line 1403,
in __call__
return self.func(*args)
File "C:\Program
Files\Python\2.5\lib\site-packages\matplotlib\backends\backend_tkagg.py",
line 212, in resize
self.show()
File "C:\Program
Files\Python\2.5\lib\site-packages\matplotlib\backends\backend_tkagg.py",
line 215, in draw
FigureCanvasAgg.draw(self)
File "C:\Program
Files\Python\2.5\lib\site-packages\matplotlib\backends\backend_agg.py",
line 314, in draw
self.figure.draw(self.renderer)
File "C:\Program
Files\Python\2.5\lib\site-packages\matplotlib\artist.py", line 46, in
draw_wrapper
draw(artist, renderer, *kl)
File "C:\Program
Files\Python\2.5\lib\site-packages\matplotlib\figure.py", line 773, in
draw
for a in self.axes: a.draw(renderer)
File "C:\Program
Files\Python\2.5\lib\site-packages\matplotlib\artist.py", line 46, in
draw_wrapper
draw(artist, renderer, *kl)
File "C:\Program
Files\Python\2.5\lib\site-packages\matplotlib\axes.py", line 1735, in
draw
a.draw(renderer)
File "C:\Program
Files\Python\2.5\lib\site-packages\matplotlib\text.py", line 515, in
draw
bbox, info = self._get_layout(renderer)
File "C:\Program
Files\Python\2.5\lib\site-packages\matplotlib\text.py", line 257, in
_get_layout
if key in self.cached: return self.cached[key]
TypeError: unhashable type: 'numpy.ndarray'matplotlib.__version__
'0.99.1'
numpy.__version__
'1.3.0'
Python version 2.5
the code in full is as follows,
import matplotlib
import numpy as np
import matplotlib.cm as cm
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt# Set some model parameters
model_points = 10000
t0 = 0.38
t1 = 0.32*t0
t2 = 0.5*t1def energy(kx, ky):
'''Energy function, evetually this will be provided by raw data
from WIEN2k'''
return -2*t0*(np.cos(kx)+np.cos(ky)) \
+ 4*t1*np.cos(kx)*np.cos(ky) \
- 2*t2*(np.cos(2*kx)+np.cos(2*ky))def shift_energy_up(energy_val, dE):
'''Shifts the energy according to a gap'''
return energy_val + np.sqrt(energy_val**2 + dE**2)def shift_energy_dn(energy_val, dE):
'''Shifts the energy down according to an energy'''
return energy_val - np.sqrt(energy_val**2 + dE**2)kx = np.arange(0, 2*np.pi, 2*np.pi/np.sqrt(model_points))
ky = np.arange(0, 2*np.pi, 2*np.pi/np.sqrt(model_points))
mgx, mgy = np.meshgrid(kx, ky)
z = energy(mgx, mgy)# Set the ticks to go outwards
matplotlib.rcParams['xtick.direction'] = 'out'
matplotlib.rcParams['ytick.direction'] = 'out'plt.figure()
CS = plt.contour(kx, ky, z, [0, 0])
plt.clabel(CS, inline=1, fontsize=10)
plt.title('Simplest default with labels')
plt.show()kind regards,
Brendan
On Mon, Nov 2, 2009 at 9:33 PM, Pierre de Buyl <pdebuyl@...2144...> wrote:
From memory, you just need to make a length one list
contour(z, [i])
Pierre
Le 2 nov. 09 à 22:19, Brendan Arnold a écrit :
Hi there,
I can draw a single contour line in MATLAB using
contour(z, [i i])
however,
contour(z, [i, i])
using matplotlib gives an error. In fact any plot that plots a single
line (i.e. contour(z, 1)) also gives an error as follows,TypeError: unhashable type: 'numpy.ndarray'
How do I draw a single contour line using matplotlib?
regards,
Brendan
------------------------------------------------------------------------------
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
matplotlib-users List Signup and Options