2012-02-08 31 views
1

this questionから問題を再現しようとすると、私は最も単純な等高線プロットでもプロットできません。エラーは、私が元に固執するかどうかに依存しないmatplotlib等高線プロット。 'module'オブジェクトに 'nextafter'という属性がありません

Traceback (most recent call last): 
    File "./contour.py", line 19, in <module> 
    CS = plt.contour(X,Y,Z) 
    File "/usr/local/lib/python2.6/dist-packages/matplotlib/pyplot.py", line 2188, in contour 
    ret = ax.contour(*args, **kwargs) 
    File "/usr/local/lib/python2.6/dist-packages/matplotlib/axes.py", line 7316, in contour 
    return mcontour.QuadContourSet(self, *args, **kwargs) 
    File "/usr/local/lib/python2.6/dist-packages/matplotlib/contour.py", line 1106, in __init__ 
    ContourSet.__init__(self, ax, *args, **kwargs) 
    File "/usr/local/lib/python2.6/dist-packages/matplotlib/contour.py", line 720, in __init__ 
    self._process_colors() 
    File "/usr/local/lib/python2.6/dist-packages/matplotlib/contour.py", line 954, in _process_colors 
    self.set_clim(self.vmin, self.vmax) 
    File "/usr/local/lib/python2.6/dist-packages/matplotlib/cm.py", line 248, in set_clim 
    self.changed() 
    File "/usr/local/lib/python2.6/dist-packages/matplotlib/contour.py", line 841, in changed 
    self.to_rgba(self.cvalues, alpha=self.alpha)] 
    File "/usr/local/lib/python2.6/dist-packages/matplotlib/cm.py", line 214, in to_rgba 
    x = self.cmap(x, alpha=alpha, bytes=bytes) 
    File "/usr/local/lib/python2.6/dist-packages/matplotlib/colors.py", line 520, in __call__ 
    cbook._putmask(xa, xa==1.0, np.nextafter(xa.dtype.type(1), 
AttributeError: 'module' object has no attribute 'nextafter' 

:ここ

は私にこれを与えgallery

#!/usr/bin/env python 
import matplotlib 
import numpy as np 
import matplotlib.cm as cm 
import matplotlib.mlab as mlab 
import matplotlib.pyplot as plt 

delta = 0.025 
x = np.arange(-3.0, 3.0, delta) 
y = np.arange(-2.0, 2.0, delta) 
X, Y = np.meshgrid(x, y) 
#Z1 = mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0) 
#Z2 = mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1) 
# difference of Gaussians 
Z = 10.0 * np.exp(X-Y) #(Z2 - Z1) 

plt.figure() 
CS = plt.contour(X,Y,Z) 

plt.show() 

から(hopefelly)関連例の簡易版であります上記のコードのように指数関数をプロットしてみてください。

些細なことがありませんか?

ケースでは、私はあなたが何も悪いことをやっていないしていないのUbuntu 10.04

+1

これを絞り込むために、コードは私のためにmatplotlib '1.0.1'を使ってUbuntu' 11.10'で動作します。 – Hooked

+2

質問のタイトルを変更することを検討します。それは等高線プロットとは関係ありませんでした。尋ねるのは良い質問ですが、他の人が同じ問題を抱えている可能性があります。何かのようなエラーが発生しましたmatplotlib:AttributeError: 'module'オブジェクトに属性 'nextafter'がありません " – Yann

答えて

2

matplotlib 1.1.0を使用している、関連するのです。 Numpyをアップグレードする必要があります。私は同じ問題を抱えていました.Numpy 1.6.1のアップデートに続き、スムーズに動作しました。

Lucid Lynx(Ubuntu 10.04)では、numpy 1.3.0にアクセスできます。不足しているnextafter機能は、numpy 1.4(ありがとうDSM)の後にのみ利用可能です。

+2

私はちょうどチェックして、nextpy関数がnumpy 1.3.0から抜けてnumpy 1.4.1以降に存在するので、 numpyバージョンが1.3.0であることを賭けてください。 – DSM

+0

@DSM - あなたはあまりにも親切です... – Yann

+0

ねえ、皆のための十分な担当者があります。 :-) – DSM

関連する問題