我用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轴,虚线超出绘制的矩阵 . 但是,两个轴应该彼此靠近,并且虚线应该停在绘制矩阵的“顶部” .
1 回答
感谢cphlewis和limes!