我预计下面的代码会生成一条以60为中心、宽度为40的线,但根据记号标签,宽度不是40 (甚至不是20)。如何使用axvline创建给定宽度的垂直线?
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,100,100)
y = 2*x+0.5
plt.plot(x,y)
plt.axvline(60)
plt.axvline(60, lw=40, alpha=0.5)
plt.show()发布于 2019-08-22 02:57:24
我认为lw是像素单位,而60是数据坐标。如果您知道两者之间的比率,您可以将其转换为数据单位,但您也可以使用axvspan来实现相同的功能。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,100,100)
y = 2*x+0.5
plt.plot(x,y)
plt.axvline(60)
width = 40
plt.axvspan(60-width/2,60+width/2, alpha=0.5)
plt.show()https://stackoverflow.com/questions/57597669
复制相似问题