2016-02-27 51 views
2

在下面的简单的代码:加入蜱matplotlib彩条

dat = np.linspace(0.1,0.9,4)*np.ones((4,1)) 
fig, ax = plt.subplots() 
cax = ax.imshow(dat, interpolation='none') 
cbar = fig.colorbar(cax) 
plt.show() 

其给出:

enter image description here

我想要的颜色条具有范围[0,1]。

dat = np.linspace(0.1,0.9,4)*np.ones((4,1)) 
fig, ax = plt.subplots() 
cax = ax.imshow(dat, interpolation='none') 
cbar = fig.colorbar(cax) 
cbar.set_clim(0, 1) 
cbar.set_ticks(np.linspace(0,1,11)) 
plt.show() 

导致:

enter image description here

显然的范围内变化的颜色已经变得更轻,但蜱虫并没有改变,即cbar.set_ticks()没有这可以通过完成按预期执行。我怎样才能改变刻度线?

回答

2

我不知道为什么颜色条不调整,但是你可以通过改变你的电话达到你想要什么imshow像这样

dat = np.linspace(0.1, 0.9, 4) * np.ones((4,1)) 
fig, ax = plt.subplots() 
cax = ax.imshow(dat, interpolation='none', vmin=0, vmax=1) 
cbar = fig.colorbar(cax) 
plt.show() 

注意额外vminvmax参数。

+0

ahh这比单独调用'cbar.set_clim()'和'cbar.set_ticks()',thx ... – nluigi

+0

要容易得多,以便在颜色可更改上的限制发生变化时更新颜色条... – tacaswell

+0

在OP中,似乎要求是(1)能够调整色条的范围和(2)能够调整色条内的刻度。虽然这个答案解决了要求(1),但是我们也可以通过包含来自OP的“cbar.set_ticks”来完成要求(2)。另外,'vmax = 0'是否需要更改为'vmax = 1'以匹配OP? –