【发布时间】:2019-12-11 04:21:15
【问题描述】:
我想绘制一条跨越整个 y 轴的垂直线,例如位于 x 轴的 x=.25 位置,而不是 数据轴。
根据this answer(显然不完全准确)axhline,axvline 函数将在轴坐标中绘制一条水平/垂直线,如下所示:
方法axhline和axvline用于在轴坐标
处画线
但这似乎不起作用。 axhline docs say:
水平线数据坐标中的y位置。
果然,上面答案中给出的代码显示:
与上述答案中显示的旧图进行比较(代码如下):
这是最近发生的变化还是我遗漏了一些非常明显的东西?如果它确实发生了变化,我现在如何在轴坐标中画一条线?
我正在使用 Python 3.7.3 和 matplotlib 3.1.0。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 5, 100)
y = np.sin(x)
fig, ax = plt.subplots()
ax.plot(x, y)
ax.axhline(y=0.5, xmin=0.0, xmax=1.0, color='r')
ax.hlines(y=0.6, xmin=0.0, xmax=1.0, color='b')
plt.show()
【问题讨论】:
-
这取决于你的
minmax参数,不是吗? -
axvline 没有故意改变行为。该问题不允许查看不希望的内容。
-
我从链接的问题中推断,由于函数使用坐标系统,min=0 和 max =1 应该跨越轴的整个范围,但现在它只是从值 x=0 绘制一条线到 x=1,而预期是 x=0,x=5
-
你是对的,那个答案中的图像是错误的。红线已关闭 - 它既不在数据中的
y=0.5处,也不在轴坐标中。因此,我认为可以假设它是由答案中未显示的代码生成的。但是,如果您将错误的图像替换为使用该代码获得的图像,那么答案是正确的,对吗?只编辑该答案可能是有意义的。 -
好的,我在下面回答了这个问题;也许你想用你真正想知道的东西来编辑你的问题,这样问答就连贯了?!
标签: python matplotlib