Python 如何在matplotlib图形中标记特定数据点
我有一个图,我想在图上标出一些x值,如下图所示,(顺便说一下,我用手画了点) 我尝试了下面的代码,但它没有像我预期的那样工作Python 如何在matplotlib图形中标记特定数据点,python,matplotlib,plot,Python,Matplotlib,Plot,我有一个图,我想在图上标出一些x值,如下图所示,(顺便说一下,我用手画了点) 我尝试了下面的代码,但它没有像我预期的那样工作 roots = [-1,1,2] plt.plot(vals,poly,markevery=roots,label='some graph') 我猜我试图在上面发布的图片有问题;作为总结,我想在函数行上加一个点,表示点是根。假设vals是[-60,60]范围内的整数,则需要找到该列表中[-1,1,2]的位置,并使用这些位置作为标记每个的参数 import matplo
roots = [-1,1,2]
plt.plot(vals,poly,markevery=roots,label='some graph')
我猜我试图在上面发布的图片有问题;作为总结,我想在函数行上加一个点,表示点是根。假设
vals
是[-60,60]
范围内的整数,则需要找到该列表中[-1,1,2]
的位置,并使用这些位置作为标记每个的参数
import matplotlib.pyplot as plt
vals,poly = range(-60,60), range(-60,60)
plt.plot(vals, poly, label='some graph')
roots = [-1,1,2]
mark = [vals.index(i) for i in roots]
print(mark)
plt.plot(vals,poly,markevery=mark, ls="", marker="o", label="points")
plt.show()
或者,您也可以只绘制这些值
import matplotlib.pyplot as plt
vals,poly = range(-60,60), range(-60,60)
plt.plot(vals, poly, label='some graph')
roots = [-1,1,2]
mark = [vals.index(i) for i in roots]
plt.plot(roots,[poly[i] for i in mark], ls="", marker="o", label="points")
plt.show()
除非知道-1,1,2
实际上在VAL
中,否则不能使用markevery
获得所需的绘图。因此,首先,在这里提问时,像往常一样创建一个。接下来,值是否在VAL
中?vals
和poly
python是列表、集合还是numpy数组?最后,您知道这些值在vals
中的位置吗?vals和poly是python列表,它们表示绘图的x和y值。VAL的范围为-60到60。至于根的问题,它们在VAL中。