İşte bir örnek
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()
Burada rengi dizine göre ayarlıyorsunuz t
, bu sadece bir dizi [1, 2, ..., 100]
.
Belki anlaşılması daha kolay bir örnek, biraz daha basittir.
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()
Geçtiğiniz dizinin c
belirli bir sıraya veya türe sahip olması gerekmediğini, yani bu örneklerde olduğu gibi sıralanması veya tamsayı olması gerekmediğini unutmayın. Çizim rutini, renk haritasını, minimum / maksimum değerler c
renk haritasının altına / üstüne karşılık gelecek şekilde ölçekleyecektir .
Colormaps
Renk haritasını ekleyerek değiştirebilirsiniz.
import matplotlib.cm as cm
plt.scatter(x, y, c=t, cmap=cm.cmap_name)
matplotlib.cm
Renk haritalarını da çağırabildiğiniz için içe aktarma isteğe bağlıdır cmap="cmap_name"
. Her birinin neye benzediğini gösteren renk haritalarının bir referans sayfası var . Ayrıca, bir renk haritasını sadece olarak adlandırarak tersine çevirebileceğinizi de bilin cmap_name_r
. Bu yüzden ya
plt.scatter(x, y, c=t, cmap=cm.cmap_name_r)
plt.scatter(x, y, c=t, cmap="cmap_name_r")
çalışacak. Örnekler "jet_r"
veya cm.plasma_r
. İşte yeni 1.5 renk haritalı viridis ile bir örnek:
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()
Renk çubukları
Kullanarak bir renk çubuğu ekleyebilirsiniz.
plt.scatter(x, y, c=t, cmap='viridis')
plt.colorbar()
plt.show()
Açıkça rakamlar ve alt grafikler kullanıyorsanız (örneğin fig, ax = plt.subplots()
veya ax = fig.add_subplot(111)
), bir renk çubuğu eklemenin biraz daha karmaşık olabileceğini unutmayın. İyi örnekler burada tek bir alt grafik renk çubuğu için ve burada 2 alt grafik 1 renk çubuğu için bulunabilir .
plt.colorbar()
Komut ile renkler için bir lejant elde edebilirsiniz .