2014-10-15 3 views
2

Я хочу построить в логарифмическом масштабе, который я сделал с помощью:Matplotlib, лаг цветовая гамма на участке, но линейной цветовой гаммы на Colorbar легенды

plt.contourf(cube[0,:,:].data, levels=np.arange(0,6000,10), norm=mplc.LogNorm()) 

Но я хочу Colorbar до сих пор линейная шкала ... это возможно, и если да, то как мне это сделать? Ключевое слово norm похоже не действует в команде plt.colorbar().

+0

Я уверен, что есть более прямой метод, но хак бы сделать второй, невидимый образ, без масштабирования журнала, и подключить Colorbar к этому. – mdurant

+1

Вы имеете в виду это http://stackoverflow.com/questions/18191867/matplotlib-contour-plot-proportional-colorbar-levels-in-logarithmic-scale? – Deditos

ответ

0

См. this answer on how to generate a colormap without an image. Рабочий пример:

import matplotlib.pyplot as plt 
import matplotlib.colors as mplc 
import numpy as np 
data = np.random.random((10,10))*6e3 
my_cmap = plt.cm.coolwarm 

# contour plot 
plt.contourf(data, levels=np.arange(0,6000,10), cmap=my_cmap, norm=mplc.LogNorm()) 

# colorbar 
sm = plt.cm.ScalarMappable(cmap=my_cmap, norm=plt.Normalize(vmin=0, vmax=6000)) 
sm._A = [] 
plt.colorbar(sm) 

Log contourf linear colorbar

Смежные вопросы