【发布时间】:2021-06-24 16:16:52
【问题描述】:
我已将颜色条与水平箱形图的 x 轴对齐。
如下图所示,沿x轴有一个空白区域。
所以我想将 x 轴与颜色条一起修剪,颜色条由 vmin 和 vmax 标准化
知道如何实现吗?
非常感谢!
test_data = [np.random.normal(mean, 1, 10) for mean in range(400, 500, 10)]
### set sns style
sns.set_style('white')
### set fig, ax
fig = plt.figure(figsize=(4,2))
ax1 = fig.add_axes([0.10,0.10,1.2,2])
### Define color bar
# choose color map
cmap = plt.get_cmap('nipy_spectral')
# normalize min and max
norm = mpl.colors.Normalize(vmin=380,vmax=780)
# assign cmap and norm
sm = plt.cm.ScalarMappable(cmap=cmap, norm=norm)
sm.set_array([])
### Plot color bar (change "pad" to adjust distance of color bar to x-axis)
plt.colorbar(sm, ticks=np.linspace(380,780,11), location="bottom", pad=0)
### Plot boxplot
bplot = ax1.boxplot(test_data, vert=False, patch_artist=True)
### Set axis
ax1.set_yticklabels(["a","b","c","d","e","f","g","h","i","j"])
ax1.get_xaxis().set_visible(False)
ax1.set_xlim(380,780)
plt.show()
【问题讨论】:
-
您正在设置
fig.add_axes([0.10,0.10,1.2,2]),这远远超出了 x 和 y 的可用 0,1 区域。为什么? -
四个数字到底是什么意思?我注意到你在下面的代码中写了 x0, y0, width, height,我特别不明白 x0 和 y0 的含义。谢谢!
-
x0,y0 是左下角。一切都以figure coordinates 衡量,从周围图左下角的 0,0 到右上角的 1,1。
-
再次感谢约翰!你很有帮助。祝您在 2021 年过得愉快!
标签: python matplotlib plot boxplot colorbar