如何将文字放置在子图的负y点上

时间:2019-06-12 13:32:37

标签: python python-3.x matplotlib

我想在子图中绘制一些我拥有的数据(方波信号),但是我想删除轴以更好地可视化。这导致没有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')作为最后一行,则效果很好,但是文本的位置不是我想要的。我想这是由于我的地块允许的大小而引起的,我需要更改它,怎么做?

编辑

这是我手动获得hiding轴的信息(可以使我插入ylabel)。 This是我真正想要的,它是通过注释ax1.text(-1.5, 2, 'MyText')

从上面发布的代码获得的图

1 个答案:

答案 0 :(得分:0)

您可以使用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()

enter image description here