Die Farben müssen nicht manuell eingestellt werden. Geben Sie stattdessen eine Graustufen-Farbkarte an ...
import numpy as np
import matplotlib.pyplot as plt
# Generate data...
x = np.random.random(10)
y = np.random.random(10)
# Plot...
plt.scatter(x, y, c=y, s=500)
plt.gray()
plt.show()
Wenn Sie eine größere Auswahl an Farbkarten bevorzugen , können Sie auch das cmap
kwarg angeben scatter
. Um die umgekehrte Version einer dieser Versionen zu verwenden, geben Sie einfach die " _r
" Version einer dieser Versionen an. ZB gray_r
statt gray
. Es gibt verschiedene Graustufen - Farbtabellen Vorgefertigte (zB gray
, gist_yarg
, binary
usw.).
import matplotlib.pyplot as plt
import numpy as np
# Generate data...
x = np.random.random(10)
y = np.random.random(10)
plt.scatter(x, y, c=y, s=500, cmap='gray')
plt.show()
mpl.cm
ist auch direkt als erhältlichplt.cm
.plt.contour()
oderplt.contourf()
- aber das ist eine andere FrageIn matplotlib können graue Farben als Zeichenfolge mit einem numerischen Wert zwischen 0-1 angegeben werden.
Beispielsweise
c = '0.1'
Anschließend können Sie Ihre dritte Variable in einen Wert innerhalb dieses Bereichs konvertieren und zum Färben Ihrer Punkte verwenden.
Im folgenden Beispiel habe ich die y-Position des Punkts als Wert verwendet, der die Farbe bestimmt:
quelle
c
Argument mit Alpha-Werten in der vierten Spalte angeben . Wenn die dritte Variable Z istshape=(n,1)
,colors = numpy.hstack((numpy.zeros_like(z), numpy.zeros_like(z), numpy.ones_like(z), z/z.max()))
ergibt sich ein sehr schöner Effekt (natürlich kann sie optimiert werden).plt.colorbar()
wird das tunManchmal müssen Sie die Farbe möglicherweise genau basierend auf dem x-Wert-Fall zeichnen . Beispielsweise können Sie einen Datenrahmen mit drei Variablentypen und einigen Datenpunkten haben. Und du willst folgendes tun,
In diesem Fall müssen Sie möglicherweise in die Kurzfunktion schreiben, um die x-Werte den entsprechenden Farbnamen als Liste zuzuordnen und diese Liste dann an den
plt.scatter
Befehl weiterzuleiten .quelle