使用轴坐标系用matplotlib画一条线

加布里埃尔

我要绘制的垂直线跨越整个Y轴位于例如在的x = 0.25的位置的x轴,而不是数据轴

根据这个答案(显然并不完全准确),这些axhline,axvline函数将在轴坐标中绘制一条水平/垂直线,如下所示:

方法axhline和axvline用于在轴坐标处绘制线

但这似乎不起作用。axhline文档说

y在水平线的数据坐标中的位置

并且肯定地,上面答案中给出的代码显示:

在此处输入图片说明

与提到的答案(下面的代码)中显示的旧图进行比较:

在此处输入图片说明

最近发生了这种变化吗?还是我缺少一些明显的东西?如果确实发生变化,我现在如何在轴坐标中画一条线?

我正在使用Python 3.7.3和matplotlib3.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()
认真的重要性

回答问题

如果我想绘制一条横跨整个y轴的垂直线,该垂直线位于x轴的x = .25位置,而不是数据轴。我该怎么做?

在那种情况下,该行的x坐标0.25和y坐标都0用于下端和1上端。线的变换设置为轴坐标系ax.transAxes

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.set(xlim=(0.5,1.5), ylim=(-50,50))

ax.plot([0.25,0.25],[0,1], transform=ax.transAxes)

plt.show()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章