Ho il seguente codice:Set Colorbar Gamma in matplotlib
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, utilizzando la mappa di colori specificato. Gli assi X e Y sono perfette, ma la mappa di colori diffonde tra il minimo e il massimo di v desidero forzare la mappa colori per variare tra 0 e 1.
ho pensato di utilizzare:.
plt.axis(...)
Per impostare gli intervalli degli assi, ma questo prende solo argomenti per il minimo e il massimo di X e Y, non per la mappa di colori.
Edit:
Per chiarezza, diciamo ho un grafico cui valori variano (0 ... 0,3), e un altro grafico cui valori (0,2 ... 0,8).
In entrambi i grafici, desidero che l'intervallo della barra di colore sia (0 ... 1). In entrambi i grafici, voglio che questa gamma di colori sia identica utilizzando l'intero intervallo di cdict sopra (quindi 0,25 in entrambi i grafici avranno lo stesso colore). Nel primo grafico, tutti i colori compresi tra 0,3 e 1,0 non saranno presenti nel grafico, ma saranno nel tasto della barra colori sul lato. Nell'altro, tutti i colori tra 0 e 0,2 e tra 0,8 e 1 non saranno presenti nel grafico, ma nella barra dei colori sul lato.
Penso che sia fare qualcosa di leggermente diverso ... mi dispiace non era probabilmente abbastanza precisi nella mia domanda La soluzione ridimensiona i colori in modo che quello che rappresenta il valore 1.0 ora rappresenti il valore massimo nei miei dati. La barra colorata mostrerà 0..1 come ne ho bisogno (con vmin = 0, vmax = 1), ma tutto sopra questo valore massimo sarà dello stesso colore ... – Paul
... Ho aggiornato la mia domanda per mostrare cosa Vengo più chiaramente. Scusa se sono stato troppo vago. – Paul
La tua risposta mi ha aiutato a risolvere il mio problema, comunque! – punyidea