2017-05-11 6 views
1

Ich versuche, einige wirklich grundlegende Matplotlib Zeug zu tun und es erhöht ständig Fehler.Probleme mit Matplotlib Attribut Fehler

C:\Users\Robert\Anaconda3\python.exe 
C:/Users/Robert/PycharmProjects/linear_regression/ML.py 
Traceback (most recent call last): 
    File "C:/Users/Robert/PycharmProjects/linear_regression/ML.py", line 9, in <module> 
plot.savefig('ScatterIris.png') 
AttributeError: 'PathCollection' object has no attribute 'savefig' 

Zuerst konnte ich nicht die .show() Attribut verwenden und dann konnte ich nicht das .savefig() Attribut verwenden. Ist etwas mit meiner Matplotlib-Installation nicht in Ordnung?

Als Referenz habe ich versucht, das Backend meiner Matplotib in Matplotlibre auf ein paar verschiedene und den gleichen Fehler jedes Mal zu ändern.

bearbeiten @ nbryans

plt.scatter(df['SepalLengthCm'], df['PetalLengthCm']).savefig('ScatterIris.png') 

gleichen Fehler aufkommt

Edit 2:

Ja, du Jungs waren richtig kann ich Zahlen speichern und die Show() Attribut/Methode zu verwenden. Danke!

+1

sein sollte 'plt.savefig()' – nbryans

+0

Ihre Bearbeitung keine Rolle spielt ... Sie versuchen immer noch um eine Methode ('savefig') aufzurufen, die für' PathCollection' Objekte nicht existiert. – blacksite

+1

Sie können also eine der Antworten auf [akzeptieren] (https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) wählen (egal, welche, sie sind) alle ungefähr gleich), so dass diese Frage nicht ungelöst bleibt. – ImportanceOfBeingErnest

Antwort

1

Sie benötigen savefig Methode pyplot des nennen.

import pandas as pd 
import seaborn as sns 
import matplotlib.pyplot as plt 
import numpy as np 

df = pd.read_csv('Iris.csv') 

plt.scatter(df['SepalLengthCm'], df['PetalLengthCm']) 
plt.savefig('ScatterIris.png') 

Das gleiche gilt, wenn Sie die Pandas Funktion Plotten verwendet haben,

import pandas as pd 
import seaborn as sns 
import matplotlib.pyplot as plt 
import numpy as np 

df = pd.read_csv('Iris.csv') 
df.plot(kind="scatter", x='SepalLengthCm', y= 'PetalLengthCm') 

plt.savefig('ScatterIris.png') 
0

Sie müssen keine plot Variable zuweisen und Sie sollten einfach plt.show() tun. Versuchen:

plt.scatter(df['SepalLengthCm'], df['PetalLengthCm']) 

plt.savefig('ScatterIris.png') # or plt.show() 
0

Dies liegt daran, savefig() is a function of pyplot (i.e. plt ) and not of the recently created plot`. Es speichert, was auch immer das aktuelle Plot ist, das Sie erstellt haben. So sollte es sein:

plt.savefig() 

Ebenso einfach Ihr Grundstück zu sehen, wäre es

sein
plt.show()