matplotlib 的动态 ipywidgets 函数不打印绘图

Dynamic ipywidgets function for matplotlib does not print the plot

我正在使用 this tutorial 并想创建一个包含 n 列的基本交互式散点图。

我的数据如下:

psm pb  procedures
36  999 33
25  567 34
24  352 20
45  456 24

我的代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import ipywidgets as widgets
import warnings
warnings.filterwarnings("ignore")
%matplotlib widget

def create_scatter(feature1, feature2):
    with plt.style.context("ggplot"):
        fig = plt.figure(figsize=(8,4))

        plt.scatter(x = psm_df[feature1],
                y = psm_df[feature2],
                s=20
               )

        plt.xlabel(feature1.capitalize())
        plt.ylabel(feature2.capitalize())

        plt.title("%s vs %s"%(feature1.capitalize(), feature2.capitalize()))

 widgets.interact(create_scatter, feature1=psm_df.columns, feature2=psm_df.columns);

出现滤镜,但剧情没有出现

我以为有错误,但我无法重现该教程中的单个图,它们也没有打印出来。怎么了?谢谢!

有趣的是,问题就在这里。

请注意,我们通过调用 jupyter magic 命令 %matplotlib widget 使用了带有 widget 扩展的 matplotlib。这背后的原因是我们希望将 matplotlib 绘图作为一个小部件,可以轻松链接到其他小部件并轻松修改。

我删除了 # %matplotlib widget,它起作用了。