调整matplotlib colorbar位置

时间:2017-06-01 09:17:34

标签: python matplotlib

我正在尝试在彩条上放置一个标签。绘制标签工作正常,但是颜色条轴的最终位置调整不起作用。似乎对“set_position”的调用根本不起作用。这是我的代码:

import numpy as np
import matplotlib.pyplot as plt

# Plot some sample data.
X, Y = np.meshgrid(np.arange(1, 10, 0.1), np.arange(1, 10, 0.1))
Z = np.sin(X) ** 2 + np.cos(Y) ** 2
plt.pcolor(X, Y, Z)
# Add the colorbar.
cb = plt.colorbar(shrink=0.8)
cax = cb.ax
# Add label on top of colorbar.
cb.ax.set_xlabel("mylabel")
cb.ax.xaxis.set_label_position('top')
cb.ax.xaxis.set_label_coords(1.8, 1.05)
# Adjust colorbar position (NOT working).
pos1 = cax.get_position()
yshift = pos1.height * 0.05 / 0.8
pos2 = [pos1.x0, pos1.y0 - yshift, pos1.width, pos1.height]
cax.set_position(pos2)
# Adjust and show the plot.
plt.tight_layout()
plt.show()

我做错了什么?

1 个答案:

答案 0 :(得分:1)

两件事:

  1. 你使用的yshift相当小,所以效果我不能直接明显。
  2. 调用plt.tight_layout()重新排列轴,从而覆盖您设置的位置。
  3. 所以你可能想先打电话plt.tight_layout()然后改变位置。