Python绘图使用数据而不是轴限制绘制平行对角线

时间:2020-09-11 13:54:14

标签: python matplotlib plot

我想绘制平行的对角线。第二条对角线应比第一条对角线低5%,第三条对角线应比第一条对角线高5%。我不想使用轴限制,因为我的数据不稳定,易变。因此,我想使用实际限制。我的代码工作正常并产生输出。无论这是正确的方法,我都不知道。我的意思是,低于1200的5%为1200 * 0.95,但是如何在接近原点的情况下降低5%。在我的代码中,我反复尝试使用了50。

我的代码和输出:

plt.plot([0,1200],[50,1200*1.05],'k--',linewidth=2)
plt.plot([0,1200],[0,1200],'k--',linewidth=2)
plt.plot([50,1200],[0,1200*0.95],'k--',linewidth=2)

enter image description here

1 个答案:

答案 0 :(得分:1)

要绘制对角线,而不考虑当前的 x / y 限制, 最自然的方法是:

  • 轴坐标 0 1 )中指定线的结束点,
  • 通过 transform = ax.transAxes

运行以下示例代码:

fig = plt.figure()
ax = plt.subplot(xlim=(0, 1250), ylim=(0, 1200))
ax.text(0.05, 0.95, 'Diagonal lines', transform=ax.transAxes, fontsize=12, va='top')
# Diagonal
plt.plot([0,    1],    [0,    1],    'k--', linewidth=1, transform=ax.transAxes)
# 5 % down
plt.plot([0.05, 1],    [0,    0.95], 'r--', linewidth=1, transform=ax.transAxes)
# 5 % up
plt.plot([0,    0.95], [0.05, 1],    'g--', linewidth=1, transform=ax.transAxes)
plt.show()

我得到了以下情节:

enter image description here

我故意使用不同颜色的线条,以方便识别。

使用此代码进行实验,每次更改 xlim ylim 所有三行都应该位于相同的位置。