Python Matplotlib 条形图交互式更新颜色
Python Matplotlib barchart updating color interactively
我正在尝试理解 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 函数时,它会更新原始图中的条形颜色。
我想知道我是否需要一个表达式来显式更新情节。
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()
我正在尝试理解 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 函数时,它会更新原始图中的条形颜色。
我想知道我是否需要一个表达式来显式更新情节。
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()