Ich kann nicht sehen (oder herauszufinden), wie die Legende mit pyplot.scatter()
angezeigt wird, wenn ich die Beschriftungen zu numerischen Werten geändert habe.Wie zeichnet man die Legende mit pyplot.scatter(), wenn die Legende nur Zahlenwerte sind?
Das heißt, ich meine kategorischen Werte 'a' umgewandelt, 'b', 'c', .. in 0, 1, 2, ...
http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.scatter
ist hier das Beispiel gegeben oben auf der URL:
import numpy as np
import matplotlib.pyplot as plt
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
area = np.pi * (15 * np.random.rand(N))**2 # 0 to 15 point radii
plt.scatter(x, y, s=area, c=colors, alpha=0.5, cmap=cm.jet)
plt.show()
Normalerweise gibt, glaube ich, ein etwas tun würde:
Dies gibt keine Legende aus, die jeder Farbe im Diagramm mit der Nummer im Array entspricht.
/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/matplotlib/axes/_axes.py:518: UserWarning: The handle <matplotlib.collections.PathCollection object at 0x1167d03c8> has a label of '_collection0' which cannot be automatically added to the legend.
'legend.'.format(handle, label))
Wie kann ich eine Legende ausgeben, die zeigt, welche Nummer dem Array-Wert entspricht?
Das ist ziemlich unklar. Möchten Sie eine Legende mit 'N = 50' Einträgen haben? Das passt nicht mal auf die Seite. – ImportanceOfBeingErnest
Ich weiß, was Sie fragen. Wenn ich zu meinem Computer komme, poste ich die Lösung. –
@ O.rka Danke – ShanZhengYang