如何在matplotlib图中标记特定数据点

odd*_*odd 3 python plot matplotlib

我有一个图,我想在图上标记 x 的一些值,如下图所示,(ps 我手工放置了点)

看情节

我尝试了以下代码,但它没有按我预期的那样工作。

roots = [-1,1,2]
plt.plot(vals,poly,markevery=roots,label='some graph')
Run Code Online (Sandbox Code Playgroud)

作为总结,我想在函数行上放一个点,表示该点是根。

Imp*_*est 8

假设 是vals范围内的整数,则[-60,60]需要[-1,1,2]在该列表中找到 的位置并将这些位置用作 的参数markevery

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()
Run Code Online (Sandbox Code Playgroud)

或者,您也可以只绘制这些值,

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()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明