Ich habe ein Diagramm auf Matplotlib gezeichnet und versuche, eine Legende zu erstellen. Wie erhalte ich matplotlib, um eine eigene Legende mit den Farbmarkierungen zu erstellen, mit denen ich meine Datentypen differenziert habe?Wie lege ich eine Legende auf Matplotlib?
Meine Daten werden aus einer CSV-Datei gelesen, die die Beschriftungen für jeden Formtyp enthält.
Mein Code sieht wie folgt aus:
data_df = pd.DataFrame.from_csv("AllMixedShapes2.csv")
X1 = np.array(data_df[features2].values)
y1 = np.array(data_df[features3].values)
plt.scatter(X1[:, 0],y1, c=y, cmap=plt.cm.Paired)
plt.axis([0, 17, 0, 200])
plt.ylabel("Maximum Angle (Degrees)")
plt.xlabel("Number Of Sides")
plt.title('Original 450 Test Shapes')
plt.legend()
plt.show()
Ich habe versucht, dies:
handles, labels = ax.get_legend_handles_labels()
ax.legend(handles, labels)
Aber ich erhalte immer diese Fehlermeldung:
handles, labels = ax.get_legend_handles_labels()
UnboundLocalError: local variable 'ax' referenced before assignment
EDIT:
Ich versuchte dies:
features_of_labels = ["Circle", "Equilateral Triangle", "Right Angle Triangle",
"Obtuse Triangle", "Acute Triangle", "Square", "Rectangle",
"Parallelogram", "Seal"]
data_df = pd.DataFrame.from_csv("AllMixedShapes2.csv")
X1 = np.array(data_df[features2].values)
y1 = np.array(data_df[features3].values)
l = np.array(data_df[features_of_labels].values)
aber ich bekomme die folgende Fehlermeldung: KeyError: „[ 'Circle' 'Equilateral Dreieck' 'Right Angle Triangle' 'stumpfes Dreieck' \ n ' Akutes Dreieck‘‚Square‘‚Rechteck‘‚Parallelogramm‘‚Seal‘] nicht in dem Index“
jedoch, wenn ich ändere features_of_labels
-header
und header = ["Label"]
es funktioniert, aber druckt wie im nächsten Bild gezeigt jedes Etikett aus. Hier
Try 'ax = plt.gca()' vor dieser Zeile. – bernie
@bernie Ich erhalte diesen Fehler: 'UserWarning: Keine beschrifteten Objekte gefunden. Verwenden Sie label = '...' kwarg auf einzelnen Plots. –
Also haben Sie getan, was die Warnung Ihnen gesagt hat? Sie sollten sich auch [Frage 1] (http://stackoverflow.com/questions/37812325/pandas-scatter-plot-with-different-color-legend-for-each-point), [Frage 2] (http://stackoverflow.com/questions/30505407/create-legend-for-scatter-plot-using-the-label-of-the-samples-in-matplotlib) und [Frage 3] (http: // stackoverflow com/questions/8017654/how-to-add-legende-for-scatter) und das erworbene Wissen nutzen, um Ihre Frage zu verbessern. Was wollen Sie erreichen und inwiefern helfen Ihnen diese Techniken nicht? – ImportanceOfBeingErnest