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.