Assuming that the vals are integers in the range of [-60,60], one would need to find the positions of [-1,1,2] in that list and use those positions as the argument to 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()
Alternatively, you could also just plot only those values,
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()

markeveryto obtain the desired plot, unless you know that-1,1,2are actually invals. So first, create a minimal reproducible example as usual when asking a question here. Next, are the values invalsor not? Arevalsandpolypython lists, sets or numpy arrays? Finally, do you know the positions of those values insidevalsor not?