Oto przykład
import numpy as np
import matplotlib.pyplot as plt
x = np.random.rand(100)
y = np.random.rand(100)
t = np.arange(100)
plt.scatter(x, y, c=t)
plt.show()
Tutaj ustawiasz kolor na podstawie indeksu t, który jest po prostu tablicą [1, 2, ..., 100].

Być może łatwiejszy do zrozumienia przykład jest nieco prostszy
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(100)
y = x
t = x
plt.scatter(x, y, c=t)
plt.show()

Zwróć uwagę, że tablica, którą przekazujesz jako c, nie musi mieć określonej kolejności ani typu, tj. Nie musi być sortowana ani liczbami całkowitymi, jak w tych przykładach. Procedura kreślenia przeskaluje mapę kolorów w taki sposób, aby minimalne / maksymalne wartości codpowiadały dolnej / górnej części mapy kolorów.
Colormaps
Możesz zmienić mapę kolorów, dodając
import matplotlib.cm as cm
plt.scatter(x, y, c=t, cmap=cm.cmap_name)
Importowanie matplotlib.cmjest opcjonalne, podobnie jak colormaps cmap="cmap_name". Istnieje strona odniesienia z mapami kolorów pokazująca, jak każdy z nich wygląda. Wiedz również, że możesz odwrócić mapę kolorów, po prostu nazywając ją jako cmap_name_r. Więc też
plt.scatter(x, y, c=t, cmap=cm.cmap_name_r)
plt.scatter(x, y, c=t, cmap="cmap_name_r")
będzie działać. Przykładami są "jet_r"lub cm.plasma_r. Oto przykład z nową 1.5 Colormap viridis:
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(100)
y = x
t = x
fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.scatter(x, y, c=t, cmap='viridis')
ax2.scatter(x, y, c=t, cmap='viridis_r')
plt.show()

Paski kolorów
Możesz dodać pasek kolorów za pomocą
plt.scatter(x, y, c=t, cmap='viridis')
plt.colorbar()
plt.show()

Zwróć uwagę, że jeśli jawnie używasz rysunków i wykresów pomocniczych (np. fig, ax = plt.subplots()Lub ax = fig.add_subplot(111)), dodanie paska kolorów może być nieco bardziej skomplikowane. Dobre przykłady można znaleźć tutaj dla pojedynczego paska koloru podrzędnego, a tutaj dla 2 wykresów podrzędnych 1 paska koloru .
plt.colorbar()polecenia.