2016-08-25 2 views
1

Я рисую свои данные в виде контурной карты. Вычисления работают над переведенными значениями, поэтому мне нужно вернуть его к исходному значению. В четвертой строке кода выполняется процесс повторного перевода. Однако, когда я построил его, цветная панель отображает относительные значения и просто примечание значения сдвига в верхней части цветовой полосы. Просто странно, что я проверил значения матрицы, и он содержит исходные значения.Matplotlib contour map colorbar

enter image description here

Как я могу показать Colorbar с отображаются исходные значения?

fig=plt.figure() 
v=np.linspace(-180,180,25) 
x,y = np.meshgrid(v,v) 
z = np.add(z,-shift) 
z = z.reshape(25,25).T 
plt.contourf(x,y,z,25) 
fig.suptitle(AA(prefix)+' Input Data Contour Map') 
plt.xlabel('$\phi$ (deg)') 
plt.ylabel('$\psi$ (deg)') 
plt.xticks(np.arange(-180, 181, 30)) 
plt.yticks(np.arange(-180, 181, 30))         
plt.colorbar() 

UPDATE: Я использовал set_ticklabels() для временного исправления, где labels является список пользовательских меток.

Но я все еще ищу лучший способ решить эту проблему.

plt.colorbar().set_ticklabels(labels) 

updated contour map

+0

Со значениями, которые у вас есть, я предполагаю, что вы либо не можете, либо не должны. Смещение примерно на 5 порядков больше, чем изменение, поэтому печать фактических значений затруднит интерпретацию другого человека. – Elliot

+0

@ Elliot Я не думаю, что фактические значения - большая часть проблемы. Я создал временное решение этой проблемы, как показано в приведенном выше обновлении. – jjv

ответ

1

Matplotlib не знает о вашей shift переменной. Он выбирает так, чтобы из-за изменений, которые вы пытаетесь визуализировать, это 10^(- 6) фонового значения.

Вы можете заставить Colorbar иметь отметки в определенных местах, как они это делают в this pylab example с помощью:

cbar = fig.colorbar(cax, ticks=[-1, 0, 1]) 
cbar.ax.set_yticklabels(['< -1', '0', '> 1']) # vertically oriented colorbar 

Однако это будет сделать масштаб очень трудно читать.

+0

, просто задаваясь вопросом, перед командой построения графика я проверил значения в переменной 'z', и он содержит исходные значения, поэтому это больше проблема построения графика в matplotlib. – jjv

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