Ho il codice seguente:
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()
Quindi questo produce un grafico dei valori 'v' sugli assi X vs Y, usando la mappa colori specificata. Gli assi X e Y sono perfetti, ma la mappa dei colori si estende tra il minimo e il massimo di V. Vorrei forzare la mappa dei colori tra 0 e 1.
Ho pensato di usare:
plt.axis(...)
Per impostare gli intervalli degli assi, ma questo richiede solo argomenti per il minimo e il massimo di X e Y, non della mappa colori.
Modificare:
Per chiarezza, supponiamo di avere un grafico i cui valori sono compresi (0 ... 0,3) e un altro grafico i cui valori (0,2 ... 0,8).
In entrambi i grafici, voglio che l'intervallo della barra dei colori sia (0 ... 1). In entrambi i grafici, voglio che questa gamma di colori sia identica usando l'intera gamma del cdict sopra (quindi 0,25 in entrambi i grafici saranno dello stesso colore). Nel primo grafico, tutti i colori compresi tra 0,3 e 1,0 non compariranno nel grafico, ma saranno nella chiave colourbar a lato. Nell'altro, tutti i colori compresi tra 0 e 0,2 e tra 0,8 e 1 non compariranno nel grafico, ma nel colore della barra laterale.