我试图了解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函数)时,它会更新原始图中的条形颜色。
我想知道我是否需要一个表达式来显式更新绘图。
答案 0 :(得分:-1)
Bar
是一个矩形色块,因此可以使用set_color
来更改条形的颜色。但是,它不接受color
作为关键字参数。在文档中,您需要使用的参数为c
因此,您可以删除color=
,或将其替换为c=
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('red')
# Bar.set_color(c='red') # this also works
fig.canvas.mpl_connect('button_press_event', on_click)
plt.show()