2017-09-19 2 views
0

Ich versuche, einen Köcher-Plot zu produzieren, Vektorlängen reichen von 0 bis 15., und ich würde gerne eine graue Colormap verwenden, aber ausgehend von, sagen wir, halben Bereich, so dass 0. bereits grau und 15. ist schwarz. Was ich getan habe, so weit ist:Benutzerdefinierte Farbbalken mit Köcher plot in Matplotlib

cmap = cm.get_cmap('Greys', 10) 

norm = matplotlib.colors.Normalize(vmin=-5.,vmax=15.,clip=False) 
Q = ax.quiver(xi, yi, zix, ziy, lengths * 1000., units='inches', width=0.008, headwidth=6, headlength=7, scale=5, 
       scale_units='inches',cmap=cmap, norm=norm) 
cb = plt.colorbar(Q, cax=ax3, ticks=[0.0, 3.0, 6.0, 9.0, 12.0, 15.0], format='%.1f', norm=norm) 

Die Farbpalette ist richtig, aber die ganze colormap in der colorbar gezeigt, das heißt von der weißen Farbe zu starten. Was fehlt mir?

Antwort

1

Die Farbkarte "Grays" beginnt bei weiß und wird schwarz. Aufgrund Ihrer Normalisierung ist -5 weiß und 15 ist schwarz.

Was Sie wirklich wollen, scheinen eine Normalisierung der vmin=0,vmax=15. und ein colormap, die bereits mit einer grauen Farbe beginnt:

import matplotlib.colors 
norm = matplotlib.colors.Normalize(vmin=0,vmax=15.,clip=False) 
cmap = matplotlib.colors.ListedColormap(plt.cm.Greys(np.linspace(0.25,1,10)), "name") 
Verwandte Themen