将水平线延伸至图形边缘

Kev*_*vin 2 python matplotlib

在下面的代码中,我获得了一条在绘图的“框”内延伸的水平线(轴对象):

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
fig.patch.set_facecolor('white')
fig.patch.set_alpha(1.0)

plt.axhline(y = 155, clip_on = False)
Run Code Online (Sandbox Code Playgroud)

这给出了下图: 在此输入图像描述

有没有办法将这条水平线延伸到整个绘图/图形?(换句话说,越过了情节的“盒子”)。

bun*_*nji 5

您可以将xminxmaxargs设置plt.axhline为超出0.0to1.0范围。

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
fig.patch.set_facecolor('white')
fig.patch.set_alpha(1.0)

plt.axhline(y = 155, xmin=-.1, xmax=1.1, clip_on = False)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

请注意,该axhline函数的文档字符串确实建议不要将这些值设置在0to1范围之外:

xmin :标量,可选,默认值:0 应介于 0 和 1 之间,0 表示图的最左侧,1 表示图的最右侧。

xmax :标量,可选,默认值:1 应介于 0 和 1 之间,0 为图的最左侧,1 为图的最右侧。

所以你想怎样就怎样吧。它可能会在将来引起问题,但至少现在是有效的。(请注意,我使用的是 matplotlib 版本 1.5.1 和 2.0.0,两者都可以工作)