Saya memiliki kode berikut:
import matplotlib.pyplot as plt
cdict = {
'red' : ( (0.0, 0.25, .25), (0.02, .59, .59), (1., 1., 1.)),
'green': ( (0.0, 0.0, 0.0), (0.02, .45, .45), (1., .97, .97)),
'blue' : ( (0.0, 1.0, 1.0), (0.02, .75, .75), (1., 0.45, 0.45))
}
cm = m.colors.LinearSegmentedColormap('my_colormap', cdict, 1024)
plt.clf()
plt.pcolor(X, Y, v, cmap=cm)
plt.loglog()
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.colorbar()
plt.show()
Jadi ini menghasilkan grafik dari nilai 'v' pada sumbu X vs Y, menggunakan colormap yang ditentukan. Sumbu X dan Y sempurna, tetapi colormap menyebar antara min dan maks v. Saya ingin memaksa colormap berkisar antara 0 dan 1.
Saya berpikir untuk menggunakan:
plt.axis(...)
Untuk mengatur rentang sumbu, tetapi ini hanya membutuhkan argumen untuk min dan maks X dan Y, bukan colormap.
Edit:
Untuk kejelasan, katakanlah saya memiliki satu grafik yang nilainya berkisar (0 ... 0,3), dan grafik lain yang nilainya (0,2 ... 0,8).
Dalam kedua grafik, saya ingin kisaran bilah warna menjadi (0 ... 1). Dalam kedua grafik, saya ingin rentang warna ini identik dengan menggunakan rentang penuh cdict di atas (jadi 0,25 pada kedua grafik akan memiliki warna yang sama). Pada grafik pertama, semua warna antara 0,3 dan 1,0 tidak akan ditampilkan dalam grafik, tetapi akan di tombol colourbar di samping. Di yang lain, semua warna antara 0 dan 0,2, dan antara 0,8 dan 1 tidak akan ditampilkan dalam grafik, tetapi akan di colourbar di samping.
Gunakan fungsi CLIM (setara dengan fungsi CAXIS di MATLAB):
sumber
Tidak yakin apakah ini solusi yang paling elegan (inilah yang saya gunakan), tetapi Anda bisa menskala data Anda ke kisaran antara 0 hingga 1 lalu memodifikasi bilah warna:
Dengan dua batas berbeda Anda dapat mengontrol rentang dan legenda bilah warna. Dalam contoh ini hanya rentang antara -0,5 hingga 1,5 yang ditampilkan di bilah, sedangkan colormap mencakup -2 hingga 2 (jadi ini bisa menjadi rentang data Anda, yang Anda rekam sebelum penskalaan).
Jadi, alih-alih menskalakan colormap, Anda skala data Anda dan cocok dengan colorbar itu.
sumber
Menggunakan lingkungan gambar dan .set_clim ()
Alternatif ini bisa lebih mudah dan aman jika Anda memiliki banyak plot:
Bilah warna tunggal
Alternatif terbaik adalah dengan menggunakan bilah warna tunggal untuk seluruh plot. Ada berbagai cara untuk melakukan itu, ini tutorial sangat berguna untuk memahami pilihan terbaik. Saya lebih suka solusi ini yang bisa Anda salin dan tempel alih-alih bagian visualisasi colorbar sebelumnya dari kode.
PS
Saya sarankan menggunakan
pcolormesh
daripadapcolor
karena lebih cepat ( info lebih lanjut di sini ).sumber