Colormap auf Null zentrieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
Grizzly
User
Beiträge: 34
Registriert: Sonntag 10. Februar 2013, 21:18

Hallo,

ich hätte gerne das weiße meiner Colormap um den Wert Null. Ich habe schon mit vmin und vmax herumgespielt, schaffe es aber (noch) nicht den Wert -7 auf rot, Wert 0 auf weiß und Wert 1 auf blau zu setzen...

Ist das überhaupt möglich, ohne eine custom Colormap zu definieren ?

Code: Alles auswählen

import numpy as np
import matplotlib.pyplot as plt

# some data
x = np.array([[0,0,0,0,0],[0,1,1,1,0],[0,-4,-7,-4,0],[0,1,1,1,0],[0,0,0,0,0]])

fig = plt.figure()
ax = plt.imshow(x)
ax.set_cmap('seismic_r')
plt.colorbar(ax)
plt.show()

Benutzeravatar
Grizzly
User
Beiträge: 34
Registriert: Sonntag 10. Februar 2013, 21:18

Hat wirklich niemand eine Idee ?
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Hallo Grizzly,

reicht dir folgendes:

Code: Alles auswählen

imshow(x, vmin=-7, vmax=7, cmap='seismic_r')
Zu eigenen `colormaps`: http://matplotlib.org/examples/pylab_ex ... _cmap.html

Grüße
Gerrit
Benutzeravatar
Grizzly
User
Beiträge: 34
Registriert: Sonntag 10. Februar 2013, 21:18

Hallo,

ich dachte es gibt einen leichteren Weg die colormap an die Daten anzupassen. Mit vmin=-7 und vmax=7 kann ich die cm zwar auf 0 zentrieren, aber falls meine Daten nur von -7 bis +1 gehen verliert man die blaue Bandbreite im Positivem... (welche ich gerne hätte)

Also muss ich mir doch eine eigene cm zusammenstellen...
Vielen dank für die Hilfe.

Schöne Grüße,
Grizzly
Antworten