Matplotlib从数据单位转换为轴单位
我正在使用Matplotlib这个Python库来绘制一些数据,并想添加一条水平线。这条线不需要覆盖整个坐标轴的范围,而是从中间开始,一直到右边的坐标轴结束。
我使用的是:
plt.axhline(y=1.75,xmin=0.5)
在这里,y指定了线的高度,单位是数据单位,但xmin和xmax需要用坐标轴的单位来定义(=0表示坐标轴的起点,=1表示坐标轴的终点)。不过我只知道我想让这条线从哪个数据点开始,有没有什么方法或函数可以把这两种单位转换过来呢?
1 个回答
2
只需要用 plt
来画一条线
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0.2,10,100)
fig, ax = plt.subplots()
ax.plot(x, 1/x)
ax.plot(x, np.log(x))
ax.set_aspect('equal')
ax.grid(True, which='both')
y = 1.25
xmin = 2
xmax = ax.get_xlim()[1]
ax.plot([xmin, xmax], [y, y], color='k')
这样就能得到: