我在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()
它几乎可以工作,但是在条形图的底部也有蜱和标签,它们也会在右侧被压扁,但我无法弄清楚原因。
谢谢。
答案 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()
输出: