2个子图用单色条共享y轴(两者之间没有空格)?

时间:2014-07-17 00:56:00

标签: python python-2.7 matplotlib subplot colorbar

有没有人有一个matplotlib示例,其中两个图共享y轴(图之间没有空格),并且单个颜色条与两个子图有关?我还没有找到这方面的例子。

1 个答案:

答案 0 :(得分:3)

我根据您的问题创建了以下代码。就个人而言,我不喜欢它在子图之间没有任何空间。如果您确实希望在某些时候更改此设置,则只需将plt.subplots_adjust(wspace = -.059)替换为plt.tight_layout()

希望这有帮助

import numpy
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable

#Random data
data = numpy.random.random((10, 10))

fig = plt.figure()

ax1 = fig.add_subplot(1,2,1, aspect = "equal")
ax2 = fig.add_subplot(1,2,2, aspect = "equal", sharey = ax1)  #Share y-axes with subplot 1

#Set y-ticks of subplot 2 invisible
plt.setp(ax2.get_yticklabels(), visible=False)

#Plot data
im1 = ax1.pcolormesh(data)
im2 = ax2.pcolormesh(data)

#Define locations of colorbars for both subplot 1 and 2
divider1 = make_axes_locatable(ax1)
cax1 = divider1.append_axes("right", size="5%", pad=0.05)

divider2 = make_axes_locatable(ax2)
cax2 = divider2.append_axes("right", size="5%", pad=0.05)

#Create and remove the colorbar for the first subplot
cbar1 = fig.colorbar(im1, cax = cax1)
fig.delaxes(fig.axes[2])

#Create second colorbar
cbar2 = fig.colorbar(im2, cax = cax2)

#Adjust the widths between the subplots
plt.subplots_adjust(wspace = -.059)

plt.show()

结果如下:

enter image description here