【发布时间】:2019-04-30 11:39:27
【问题描述】:
我正在尝试理解 matplotlib(在 Jupyter Notebook 中)中的交互式绘图。
这是一段代码,我想知道为什么它不起作用。
import matplotlib.pyplot as plt
%matplotlib notebook
fig, ax = plt.subplots()
BarChart = ax.bar(df.index, df.mean(axis=1), color = 'black')
def on_click(event):
for Bar in BarChart:
Bar.set_color(color='red')
fig.canvas.mpl_connect('button_press_event', on_click)
plt.show()
谁能解释一下为什么这没有将条形的颜色更新为红色以及如何解决?
当在静态情况下使用 for 循环时,即没有 on_click 和 mpl_connect 函数,它会更新原始图中的条形颜色。
我想知道是否需要一个表达式来显式更新绘图。
【问题讨论】:
-
我已经尝试过了,但没有任何区别。实际上,简单的解决方法就是在 on_click 函数中再次绘制条形图。但我只是想了解为什么我无法更改现有条形图的颜色。
-
尝试删除
set_color中的color=。所以它将是Bar.set_color('red') -
哦!那行得通!!!!非常感谢。 :D 因为这个原因我昨天浪费了一整天.....我查了 set_color 但不知何故我找不到关于这个函数的明确文档.. 有没有办法让我选择你的答案作为答案?跨度>
标签: python matplotlib dynamic interactive