我想知道是否有可能更新一个参数,例如已经绘制过的图形的线条颜色,它不会破坏图形并创建另一个图形。
示例:我绘制图形,然后通过单击在其上创建几条水平绿线。现在我想将图表的蓝色主线更改为红色,而不会丢失已创建的水平绿线。
类似的东西:
import matplotlib.pyplot as plt
c = None
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot([1,2,3],[1,2,3], color = c)
def onclick(event):
plt.ion()
plt.hlines(event.ydata,event.xdata-0.1,event.xdata+0.1,
colors='green',linestyle='solid')
cid = fig.canvas.mpl_connect('button_press_event', onclick)
def change_color():
c = 'r'
# ???
plt.show()
change_color() # running this function will update the plot line color to red
答案 0 :(得分:1)
您需要捕捉hlines
电话创建的艺术家:
fig, ax = plt.subplots()
arts = ax.hlines([.5, .75], 0, 1, lw=5)
返回LineCollection
个对象。你可以通过编程修改它
arts.set_color(['sage', 'purple'])
要获得更新窗口,您需要致电
fig.canvas.draw()
(在导入pyplot的repl时,最后一位在master上不再为真)
我在这里做了一些更有趣的事情并使用hlines
绘制了多条线并设置了多种颜色,但它也只有一条线也一样。