删除 Jupyter Notebook 中涉及交互式小部件的同一单元格中过去的 Matplotlib 图
Remove past Matplotlib plots in the same cell in Jupyter Notebook involving interactive widgets
这只是一个困扰我一段时间的小问题。
我有一个 pandas 数据框,其中包含所有连续变量。我想为任何选定的变量对绘制散点图(使用 matplotlib),同时利用 Jupyter 中的交互式小部件。
假设数据有 3 个数字列:'a'、'b' 和 'c'。
到目前为止我有这些代码行:
def g(x,y):
plt.scatter(x, y)
interactive_plot = interactive(g, x=['a','b','c'], y=['a','b','c'])
interactive_plot
而且它们工作正常,因为每当我切换 x 和 y 的下拉框以及 select 来自 3 个可用变量的一对变量时,它们确实会生成散点图。但是,这里的问题是在显示新情节之前,不会删除以前制作的情节。换句话说,matplotlib 不会更新现有图形中的绘图,而只是将 plots/figures 堆叠在一起。因此,如果我将变量对的选择更改 10 次,我将得到 10 个散点图,这不是我想要的。
谁能帮我解决这个问题?
提前致谢。
您可以在函数末尾添加 plt.show()
。这会在同一个单元格中重新绘制图形,而不是添加新的图形。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from ipywidgets import interactive
%matplotlib inline
columns=['a','b','c']
data = np.cumsum(np.random.rand(10,3),axis=1)
df = pd.DataFrame(data,columns=columns)
def g(x,y):
plt.scatter(df[x], df[y])
plt.show()
interactive_plot = interactive(g, x=columns, y=columns)
interactive_plot
这只是一个困扰我一段时间的小问题。
我有一个 pandas 数据框,其中包含所有连续变量。我想为任何选定的变量对绘制散点图(使用 matplotlib),同时利用 Jupyter 中的交互式小部件。
假设数据有 3 个数字列:'a'、'b' 和 'c'。
到目前为止我有这些代码行:
def g(x,y):
plt.scatter(x, y)
interactive_plot = interactive(g, x=['a','b','c'], y=['a','b','c'])
interactive_plot
而且它们工作正常,因为每当我切换 x 和 y 的下拉框以及 select 来自 3 个可用变量的一对变量时,它们确实会生成散点图。但是,这里的问题是在显示新情节之前,不会删除以前制作的情节。换句话说,matplotlib 不会更新现有图形中的绘图,而只是将 plots/figures 堆叠在一起。因此,如果我将变量对的选择更改 10 次,我将得到 10 个散点图,这不是我想要的。
谁能帮我解决这个问题?
提前致谢。
您可以在函数末尾添加 plt.show()
。这会在同一个单元格中重新绘制图形,而不是添加新的图形。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from ipywidgets import interactive
%matplotlib inline
columns=['a','b','c']
data = np.cumsum(np.random.rand(10,3),axis=1)
df = pd.DataFrame(data,columns=columns)
def g(x,y):
plt.scatter(df[x], df[y])
plt.show()
interactive_plot = interactive(g, x=columns, y=columns)
interactive_plot