首页 文章

Matplotlib - 设置两个x轴之间的距离

提问于
浏览
1

我用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()

编辑(添加的图片看起来像预期的结果):
The intended result

现在,较低的x轴远低于上x轴,虚线超出绘制的矩阵 . 但是,两个轴应该彼此靠近,并且虚线应该停在绘制矩阵的“顶部” .

1 回答

  • -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!

相关问题