Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用单色条共享y轴(无间距)的2个子图?_Python_Python 2.7_Matplotlib_Subplot_Colorbar - Fatal编程技术网

Python 使用单色条共享y轴(无间距)的2个子图?

Python 使用单色条共享y轴(无间距)的2个子图?,python,python-2.7,matplotlib,subplot,colorbar,Python,Python 2.7,Matplotlib,Subplot,Colorbar,是否有人有一个matplotlib示例,其中两个绘图共享y轴(绘图之间没有空格),且两个子绘图都有一个单色条?我还没有找到这方面的示例。我根据您的问题创建了以下代码。就我个人而言,我不喜欢子地块之间没有空间。如果您确实想在某个时候更改此设置,则只需将plt.subplot\u adjust(wspace=-.059)替换为plt.tight\u layout() 希望这有帮助 import numpy import matplotlib.pyplot as plt from mpl_toolki

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

我根据您的问题创建了以下代码。就我个人而言,我不喜欢子地块之间没有空间。如果您确实想在某个时候更改此设置,则只需将
plt.subplot\u adjust(wspace=-.059)
替换为
plt.tight\u 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()
结果如下:


我的答案有用吗,或者你在寻找不同的答案?如果
fig=plt.figure()ax1=fig.add_子图(1,2,1,aspect=“equal”)ax2=fig.add_子图(1,2,2,aspect=“equal”,shary=ax1)
导致
属性错误:“Text”object没有属性“\u可调”
?@durbachit,如果我复制粘贴您提供的行,我将无法再现您的错误。我猜你的错误有不同的原因。我建议您尝试运行您在评论中发布的三行代码。如果您能够使用这三行产生错误,我建议您查看matplotlib的版本。我使用的是:1.5.1。