2017-08-17 19 views
0

Pythonオブジェクトを呼び出している間、最大の再帰の深さを超えました。その後、アンドリューの曲線:私はアンドリューの曲線は、このコードで動作するようにしようとしていた

More than 20 figures have been opened 

と:そして、それは警告をあきらめた

RecursionError: maximum recursion depth exceeded while calling a Python object 

パラレル座標は、ほぼ同じコードで正常に動作しますので、これは、アンドリューのカーブで発生します:

def parallel_coords(df, class_column): 
    plt.style.use("ggplot") 
    plt.figure() 
    parallel_coordinates(df, class_column = class_column, cols = list(df), alpha = 0.4) 
    plt.draw() 

parallel_coords(players, "RANK") 
plt.show() 

私はclear('all')clf()、およびcla()のメソッドを使用しようとしましたが、それらはすべてゼロ効果を持っています。

答えて

1

コード内で関数andrews_curvesの名前を変更する必要があります。

はをご自身のandrews_curvesの機能の中で呼び出してください。を呼び出すようです。

トラブルはすぐにあなたがandrews_curvesを定義するように、これは、同じ名前の他のオブジェクトを置き換えるので、あなたの関数を呼び出すの効果は、それはニシキヘビの再帰の上限に達するまで、それは、自分自身を再帰的に呼び出すことで、次のとおりです。

Why does Python have a maximum recursion depth?

parallel_coordsここで呼び出す関数の名前が異なるため、これは無効です。要するに

、あなたのandrews_curvesは何か他のものに機能名前変更:

def plot_andrews_curves(df, class_column, normalize = False): 
    plt.style.use("ggplot") 
    plt.figure() 
    andrews_curves(df, class_column) 
    plt.draw() 

を、あなたがこの問題を持っていません。

関連する問題