我用imshow显示一个图像(图),它比它的高度宽5倍。我使用以下代码在此下添加第二个x轴:
newax = figure.add_axes(ax.get_position())
newax.patch.set_visible(False)
newax.yaxis.set_visible(False)
for spinename, spine in newax.spines.items():
if spinename != 'bottom':
spine.set_visible(False)
但是,第二个x轴远低于第一个x轴。
图像
首先是xAxis
(巨大的空间)
第二个xAxis
将ylim设置为[0,0]不起作用。如何让第二个x轴在第一个x轴下只放置几个像素?
编辑:添加最少的样本以帮助重现问题。
import numpy as np
import matplotlib.pyplot as plt
def addReferenceToPlot(figure, ax, xlim):
newax = figure.add_axes(ax.get_position())
newax.patch.set_visible(False)
newax.yaxis.set_visible(False)
for spinename, spine in newax.spines.items():
if spinename != 'bottom':
spine.set_visible(False)
newax.axvline(0.5, color='k', ls='dashed')
data = np.ones((25, 111))
specFig, specAx = plt.subplots()
addReferenceToPlot(specFig, specAx, data.shape[1])
specAx.imshow(data, origin="lower", interpolation="nearest")
specAx.set_xlim([0, data.shape[1]])
plt.show()
编辑(添加的图片看起来像预期的结果):
现在,较低的x轴远低于上x轴,虚线超出绘制的矩阵。但是,两个轴应该彼此靠近,虚线应该停在"顶部"绘制的矩阵。
答案 0 :(得分:-1)
def plot_mix(image1, image2):
ax.append(plt.subplot2grid((3, 2), (1, 0)))
ax[-1].imshow(image1)
ax[-1].set_title('Mix Image 1')
ax.append(plt.subplot2grid((3, 2), (2, 0)))
ax[-1].imshow(image2)
ax[-1].set_title('Mix Image 2')
plt.tight_layout()
plt.show()
感谢cphlewis和limes!