Python 是否更新已打印图形的颜色?
我想知道是否有可能更新一个参数,例如一个已经绘制的图形的线颜色,而该参数在销毁图形并创建另一个图形时不会自动换行 示例:我绘制一个图形,然后通过单击在其上创建几条水平绿线。现在,我想将图形的蓝色主线更改为红色,而不丢失创建的水平绿线 比如:Python 是否更新已打印图形的颜色?,python,python-3.x,matplotlib,Python,Python 3.x,Matplotlib,我想知道是否有可能更新一个参数,例如一个已经绘制的图形的线颜色,而该参数在销毁图形并创建另一个图形时不会自动换行 示例:我绘制一个图形,然后通过单击在其上创建几条水平绿线。现在,我想将图形的蓝色主线更改为红色,而不丢失创建的水平绿线 比如: 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 o
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
您需要捕获通过
hline
呼叫创建的艺术家:
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
画了多条线,设置了多个颜色,但也只画了一条线就可以了。对不起,也许我没有正确理解它。它所做的是获取已创建hline的ID并更改其颜色?更改主绘图颜色(ax.plot([1,2,3],[1,2,3],color=c)怎么样?算了,没关系。我掌握了窍门。谢谢你的提示(特别是fig.canvas.draw()):@VictorJosé抱歉,我被你的尝试弄糊涂了,我以为您想更改hline的颜色。您还应该阅读一篇关于如何使用OO界面的较长文章。