Ich habe folgenden Code:
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()
Dies erzeugt also ein Diagramm der Werte 'v' auf den Achsen X gegen Y unter Verwendung der angegebenen Farbkarte. Die X- und Y-Achse sind perfekt, aber die Farbkarte verteilt sich zwischen min und max von v. Ich möchte die Farbkarte zwingen, zwischen 0 und 1 zu liegen.
Ich dachte an:
plt.axis(...)
Um die Bereiche der Achsen festzulegen, werden jedoch nur Argumente für min und max von X und Y verwendet, nicht für die Farbkarte.
Bearbeiten:
Nehmen wir zur Verdeutlichung an, ich habe ein Diagramm, dessen Wertebereich (0 ... 0,3) beträgt, und ein anderes Diagramm, dessen Werte (0,2 ... 0,8).
In beiden Diagrammen soll der Bereich der Farbleiste (0 ... 1) sein. In beiden Diagrammen möchte ich, dass dieser Farbbereich unter Verwendung des gesamten obigen Bereichs von cdict identisch ist (daher haben 0,25 in beiden Diagrammen dieselbe Farbe). Im ersten Diagramm werden nicht alle Farben zwischen 0,3 und 1,0 im Diagramm angezeigt, sondern in der Farbbalken-Taste an der Seite. Im anderen Fall werden alle Farben zwischen 0 und 0,2 sowie zwischen 0,8 und 1 nicht im Diagramm angezeigt, sondern in der Farbleiste an der Seite.