2013-12-26 3 views
1

У меня есть заголовок imshow в Python с цветной панелью.colorbar с двумя наборами меток

Я хотел поместить свою Colorbar в определенном месте и имеет горизонтальную ориентацию, и поэтому я следующее:

cbaxes0 = fig.add_axes([0.65, 0.89, 0.25, 0.01]) 
cb0 = plt.colorbar(cax = cbaxes0,orientation="horizontal") 
cb0.update_ticks() 
plt.colorbar() 

Это почти работает, но и имеющие тики и метки на нижней часть бар, они раздавлены с правой стороны, но я не могу понять, почему.

спасибо.

ответ

2

Попробуйте использовать set_ticks() на самом объекте цветной панели. Это перезаписывает set_xticklabels() на любых подзаговорах.

import matplotlib.pyplot as plt 
import numpy as np 
from matplotlib import cm 
from numpy.random import randn 

fig, ax = plt.subplots() 
data = np.clip(randn(250, 250), -1, 1) 
cax = ax.imshow(data, interpolation='nearest', cmap=cm.coolwarm) 
cbar = fig.colorbar(cax, ticks=[-1, 0, 1], orientation='horizontal') 
cbar.ax.set_xticklabels(['Low', 'Medium', 'High'])# horizontal colorbar 
cbar.set_ticks([0.65, 0.89, 0.25, 0.01]) 
cbar.update_ticks() 

plt.show() 
1

Вот образец с цветной панелью на разных осях.

Проблема, с которой вы сталкиваетесь, не ясна для меня. Если возможно, вы можете включить изображение, показывая проблему.

import matplotlib.pyplot as plt 
import numpy as np 
from matplotlib import cm 
from numpy.random import randn 

fig = plt.figure() 

ax1 = fig.add_subplot(211) 
data = np.clip(randn(250, 250), -1, 1) 
im = ax1.imshow(data, interpolation='nearest', cmap=cm.coolwarm) 
ax1.set_title('Gaussian noise with vertical colorbar') 

ax2 = fig.add_axes([0.28, 0.39, 0.45, 0.01]) 
cbar = fig.colorbar(im, cax=ax2, ticks=[-1, -0.5, 0, 0.5, 1], orientation='horizontal') 
cbar.ax.xaxis.set_ticks_position('bottom') 
cbar.ax.tick_params(axis='x', direction='out') 

plt.show() 

Выход:

enter image description here

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