Ich habe den folgenden Code:Set Colorbar Bereich 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()
So ergibt sich ein Graph der 'v' Werte auf den Achsen X vs Y, die angegebene colormap verwenden. Die X- und Y-Achsen sind perfekt, aber die colormap Pannen zwischen min und max von v I das colormap erzwingen möchte liegen im Bereich zwischen 0 und 1.
I daran gedacht, mit:.
plt.axis(...)
Um die Bereiche der Achsen festzulegen, werden nur die Argumente für die Min- und Max-Werte von X und Y verwendet, nicht die Farbpalette.
Edit:
Aus Gründen der Klarheit, lassen Sie uns sagen, dass ich einen Graphen, dessen Werte liegen haben (0 ... 0,3) und einen weiteren Graphen, dessen Werte (0,2 ... 0,8).
In beiden Graphen möchte ich den Bereich der Farbbalken (0 ... 1) sein. In beiden Graphen möchte ich, dass dieser Farbbereich identisch ist, wobei der gesamte obige cdict-Bereich verwendet wird (so dass 0,25 in beiden Graphen die gleiche Farbe haben wird). In der ersten Grafik werden alle Farben zwischen 0.3 und 1.0 nicht im Diagramm angezeigt, sondern in der Farbleisten-Taste an der Seite. In der anderen werden alle Farben zwischen 0 und 0,2 und zwischen 0,8 und 1 nicht im Diagramm erscheinen, sondern in der Farbleiste an der Seite.
Ich denke, das ist etwas, auf subtile Weise anders tut ... sorry ich war wahrscheinlich nicht genau genug in meiner Frage. Ihre Lösung wird die Farben so skalieren, dass das, was früher den Wert 1,0 darstellt, jetzt den maximalen Wert in meinen Daten darstellt. Die Farbleiste zeigt 0..1, wie ich es brauche (mit vmin = 0, vmax = 1), aber alles über diesem maximalen Wert wird die gleiche Farbe haben ... – Paul
... Ich habe meine Frage aktualisiert, um zu zeigen, was Ich bin klar hinterher. Entschuldigung, wenn ich zu vage war. – Paul
Ihre Antwort hat mir geholfen, mein Problem zu lösen! – punyidea