首页 > 解决方案 > 如何将文本放置在子图中的负 y 点上

问题描述

我想在子图中绘制一些我拥有的数据(方波信号),但我想删除轴以获得更好的可视化。这导致没有 ylabel。我想我可以添加一个简单的text(),这样我就可以手动插入我想要的文本,但我似乎无法对 y 轴使用负值(因为我可以没有子图)。我认为可行的代码是:

fig, (ax1, ax2, ax3, ax4, ax5, ax6)= plt.subplots(6,1)

#plot
ax1.plot(PathClockGeneration_4.q2bar_x,PathClockGeneration_4.clk_y, linewidth=2, color='black')
ax2.plot(PathClockGeneration_4.q2bar_x,PathClockGeneration_4.clkbar_y, linewidth=2, color='black')
ax3.plot(PathClockGeneration_4.q2bar_x,PathClockGeneration_4.q1_y, linewidth=2, color='C0')
ax4.plot(PathClockGeneration_4.q2bar_x,PathClockGeneration_4.q2_y, linewidth=2, color='C1')
ax5.plot(PathClockGeneration_4.q2bar_x,PathClockGeneration_4.q1bar_y, linewidth=2, color='C2')
ax6.plot(PathClockGeneration_4.q2bar_x,PathClockGeneration_4.q2bar_y, linewidth=2, color='C3')

#axis
ax1.axis('off')
ax2.axis('off')
ax3.axis('off')
ax4.axis('off')
ax5.axis('off')
ax6.axis('off')


#text
ax1.text(-1.5, 2, 'MyText')

如果我尝试最后一行,因为ax1.text(0, 2, 'MyText')它工作正常,但文本的位置不是我想要的。我想这来自我的地块被允许的大小,我需要改变它,怎么做?

编辑

这就是我手动隐藏轴的方法(这可以让我插入一个 ylabel)。是我真正想要的,因为通过评论从上面发布的代码中获得了情节ax1.text(-1.5, 2, 'MyText')

标签: pythonpython-3.xmatplotlib

解决方案


您可以使用fig而不是ax1放置文本。参数0.05, 0.6是相对比例的 x 和 y 坐标。您可以根据自己的口味选择它们。



完整答案

import numpy as np
import matplotlib.pyplot as plt

fig, (ax1, ax2, ax3, ax4, ax5, ax6) = plt.subplots(6,1)

x = np.linspace(0, 4*np.pi, 100)
y = np.sin(x)
ax1.plot(x, y, linewidth=2, color='black')
ax2.plot(x, y, linewidth=2, color='black')
ax3.plot(x, y, linewidth=2, color='C0')
ax4.plot(x, y, linewidth=2, color='C1')
ax5.plot(x, y, linewidth=2, color='C2')
ax6.plot(x, y, linewidth=2, color='C3')

# Hiding axis
for ax in [ax1, ax2, ax3, ax4, ax5, ax6]:
    ax.axis('off')

fig.text(0.05, 0.6, 'MyText', rotation=90, fontsize=20)
plt.show()

在此处输入图像描述


推荐阅读