colorbar显示两组标签

时间:2013-12-26 01:00:19

标签: python matplotlib colorbar

我在Python中有一个带有颜色条的imshow情节。

我想将我的颜色条放在某个位置并且方向是水平的,所以我有以下内容:

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 个答案:

答案 0 :(得分:2)

尝试在colorbar图形对象本身上使用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 :(得分: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