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 c
odpowiadał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.cm
jest 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.