Ich beginne zu lernen, matplotlib
zu verwenden, um Zahlen zu zeichnen. Als ich den berühmten iris
Datensatz benutzte und versuchte, eine Handlungsfigur zu zeichnen, stieß ich auf eine Frage.Warum hat die von Matplotlib gezeigte Figur mehr als drei Farben, während ich nur drei Etiketten habe?
import numpy as np
import pandas as pd
import matplotlib.pylab as pl
raw = pd.read_csv('iris.csv')
data = raw.values
print data
x = data[:,0]
y = data[:,1]
pl.scatter(x,y,color = ['r','g','b'], s = [30,40,50], alpha=0.5)
pl.figure()
pl.show()
labels = set(data[:,4])
print labels
bekam ich die Ausgabe
...
[6.7 3.3 5.7 2.5 'Iris-virginica']
[6.7 3.0 5.2 2.3 'Iris-virginica']
[6.3 2.5 5.0 1.9 'Iris-virginica']
[6.5 3.0 5.2 2.0 'Iris-virginica']
[6.2 3.4 5.4 2.3 'Iris-virginica']
[5.9 3.0 5.1 1.8 'Iris-virginica']]
set(['Iris-virginica', 'Iris-setosa', 'Iris-versicolor'])
ich nur die ersten beiden Funktionen verwendet, weil ich nicht wusste, ob es möglich ist, eine hohe Dimensions Figuren zu zeichnen.
Dies ist die Figur, die ich bekam
Es waren mehr als drei Farben, während Sie von der Ausgabe sehen können, gab es genau drei Etiketten ('Iris-virginica', 'Iris-setosa', 'Iris-versicolor')
.
Ich frage mich, wie Matplotlib entscheidet, welche Farbe zu verwenden?
Wofür sind die verschiedenen Farben?
Was soll ich tun, um eine dreifarbige Plotfigur zu zeigen?