私はこれらのライブラリが非常に新しく、これをプロットするときに問題が発生しています:
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
import random
df5 = pd.read_csv('../../../../datos/tiempos-exacto-variando-n-m0.csv', sep=', ', engine='python')
print(df5)
df5['n'] = df5['n'].apply(lambda x: x**2)
sns.jointplot(df5['n'], df5['tiempoTotal'], kind="reg")
sns.plt.show()
そして、私はこの出力を得ています:
n m tiempoTotal
0 1 0 2274
1 2 0 3370
2 3 0 5709
3 4 0 8959
4 5 0 13354
5 6 0 18503
6 7 0 26329
7 8 0 33859
8 9 0 41110
9 10 0 52710
10 11 0 64364
11 12 0 74142
12 13 0 81072
13 14 0 69332
14 15 0 71027
15 16 0 89721
16 17 0 85459
17 18 0 95217
18 19 0 119210
19 20 0 136888
20 21 0 131903
21 22 0 138395
22 23 0 151222
23 24 0 163542
24 25 0 177236
25 26 0 192475
26 27 0 240162
27 28 0 260701
28 29 0 235752
29 30 0 250835
.. ... .. ...
580 581 0 88306854
581 582 0 89276420
582 583 0 87457875
583 584 0 90807004
584 585 0 87790003
585 586 0 89821530
586 587 0 89486585
587 588 0 88496901
588 589 0 89090661
589 590 0 89110803
590 591 0 90397942
591 592 0 94029839
592 593 0 92749859
593 594 0 105991135
594 595 0 95383921
595 596 0 105155207
596 597 0 114193414
597 598 0 98108892
598 599 0 97888966
599 600 0 103802453
600 601 0 97249346
601 602 0 101917488
602 603 0 104943847
603 604 0 98966140
604 605 0 97924262
605 606 0 97379587
606 607 0 97518808
607 608 0 99839892
608 609 0 100046492
609 610 0 103857464
[610 rows x 3 columns]
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-21-63146953b89d> in <module>()
9 df5['n'] = df5['n'].apply(lambda x: x**2)
10 sns.jointplot(df5['n'], df5['tiempoTotal'], kind="reg")
---> 11 sns.plt.show()
AttributeError: 'module' object has no attribute 'plt'
これをJupyter Notebook
でPython 2.7.12
で実行しています。何か案は?
sns.plt.show()
はseaborn 0.7.1を使用してうまく機能します。これは他のバージョンでは異なる可能性があります。ただし、とにかくimport matplotlib.pyplot as plt
を使用する場合は、plt.show()
を使用することもできます。sns.plt.show()
はpyplot
がseaborn名前空間内で利用可能であるためにのみ機能するためです。
さて、Seaborn 0.8.1でもこの問題に遭遇しました。 sns.plt.show()
を呼び出すことができるのは悪い習慣であり、それが機能していたという事実 バグだった は開発者が修正しました。残念ながら、多くのチュートリアルがあります out there まだsns.plt.show()
を使用することをお勧めします。これは私がそれを解決した方法です:
import matplotlib.pyplot as plt
_sns.set()
-重要です。そうしないと、Seabornパレットを取得できません。sns.plt
_へのすべての呼び出しをplt
に置き換えますSeaborn 0.8.1の時点で、sns.plt.plot()
はエラー_module 'seaborn' has no attribute 'plt'
_を発生させます。
sns.plot()
もエラーを発生させます。これらのメソッドはSeabornのAPIにはありません。
(sns。)をドロップして(plt.plot())を残す(他の回答が示唆するように)動作しますが、これはsns.set()スクリプトの初期のメソッド...つまり、Seabornは美的な変更を行っています:Matplotlibはまだオブジェクトです、plt.plot()メソッドを介してプロットを行います。
このスクリプトはsnsを示します.set()in action ...コメントに従って、スクリプト内の異なる場所間でsns.set()を交換すると、サブプロットの外観を変更します。 Seabornプロットのように見えますが、Matplotlibはプロットを行っています。
Seabornには、独自のプロットメソッド(sns.boxplot()、sns.violinplot()など)がもちろんありますが、メソッドはありませんsns.plt.plot() 。
評判が悪いためコメントできない(初心者はこちら)
Anaconda内でJupyterを使用して同じエラーが発生したことを確認したいだけです(2018年2月)。 here からコードを取得しましたが、エラーが発生しました。単純に追加する必要があることがわかります
_import matplotlib
_
の上に
_import seaborn as sns
_
plt.show()
の代わりにsns.plt.show()
を使用して正常に動作します
AnacondaのようなIDEのシェルもpythonシェル)を更新したことを確認してください。 。Anacondaコマンドラインを使用した更新は、私の場合のように非常に簡単です。