Berikut ini contohnya
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()
Di sini Anda mengatur warna berdasarkan indeks t
, yang hanya berupa array [1, 2, ..., 100]
.
Mungkin contoh yang lebih mudah dipahami adalah yang sedikit lebih sederhana
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()
Perhatikan bahwa larik yang Anda lewati c
tidak perlu memiliki urutan atau tipe tertentu, yaitu tidak perlu diurutkan atau bilangan bulat seperti dalam contoh ini. Rutin plotting akan menskalakan peta warna sedemikian rupa sehingga nilai minimum / maksimum c
sesuai dengan bagian bawah / atas peta warna.
Colormaps
Anda dapat mengubah peta warna dengan menambahkan
import matplotlib.cm as cm
plt.scatter(x, y, c=t, cmap=cm.cmap_name)
Mengimpor matplotlib.cm
adalah opsional karena Anda juga dapat memanggil colormaps cmap="cmap_name"
. Ada halaman referensi peta warna yang menunjukkan tampilan masing-masing. Ketahuilah juga bahwa Anda dapat membalikkan peta warna hanya dengan menyebutnya sebagai cmap_name_r
. Begitu juga
plt.scatter(x, y, c=t, cmap=cm.cmap_name_r)
plt.scatter(x, y, c=t, cmap="cmap_name_r")
akan bekerja. Contohnya adalah "jet_r"
atau cm.plasma_r
. Berikut adalah contoh dengan 1.5 colormap viridis baru:
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()
Colorbars
Anda dapat menambahkan colorbar dengan menggunakan
plt.scatter(x, y, c=t, cmap='viridis')
plt.colorbar()
plt.show()
Perhatikan bahwa jika Anda menggunakan gambar dan subplot secara eksplisit (mis. fig, ax = plt.subplots()
Atau ax = fig.add_subplot(111)
), menambahkan bilah warna bisa sedikit lebih melibatkan. Contoh bagus dapat ditemukan di sini untuk satu subplot colorbar dan di sini untuk 2 subplot 1 colorbar .
plt.colorbar()
perintah.cm.colormap_name
dancm.cmapname
bukan variabel aktual dimatplotlib.cm
; itu hanya pseudocode untukcm.jet
ataucm.veridis_r
, dll.cmap
atauc
daftar kurva yang sudah diplot?Untuk menambah jawaban wflynny di atas, Anda dapat menemukan peta warna yang tersedia di sini
Contoh:
import matplotlib.cm as cm plt.scatter(x, y, c=t, cmap=cm.jet)
atau sebagai alternatif,
plt.scatter(x, y, c=t, cmap='jet')
sumber
Bilah Warna Subplot
Untuk subplot dengan sebar, Anda dapat mengelabui bilah warna ke sumbu Anda dengan membangun "dapat dipetakan" dengan bantuan gambar sekunder dan kemudian menambahkannya ke plot asli Anda.
Sebagai kelanjutan dari contoh di atas:
import numpy as np import matplotlib.pyplot as plt x = np.arange(10) 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') # Build your secondary mirror axes: fig2, (ax3, ax4) = plt.subplots(1, 2) # Build maps that parallel the color-coded data # NOTE 1: imshow requires a 2-D array as input # NOTE 2: You must use the same cmap tag as above for it match map1 = ax3.imshow(np.stack([t, t]),cmap='viridis') map2 = ax4.imshow(np.stack([t, t]),cmap='viridis_r') # Add your maps onto your original figure/axes fig.colorbar(map1, ax=ax1) fig.colorbar(map2, ax=ax2) plt.show()
Perhatikan bahwa Anda juga akan menampilkan gambar sekunder yang dapat Anda abaikan.
sumber