Jupyter Lab中复用原有代码绘制箱线图无显示如何解决?
问题排查方案
- 调整导入语句顺序
当前代码先调用pd.DataFrame()创建测试数据,之后才导入pandas库,虽然后续用read_csv覆盖了df,但如果代码按顺序逐行运行,会先触发pd未定义报错,建议把所有import语句放在代码最开头,同时两个matplotlib渲染魔法命令保留一个即可,避免环境冲突:
import pandas as pd import numpy as np import matplotlib.pyplot as plt from matplotlib import style import warnings warnings.filterwarnings("ignore") %matplotlib inline
- 检查数据读取逻辑
代码前半段手动构造了测试用df,后半段又用df = pd.read_csv('dataset.csv')直接覆盖了之前的df,确认本地存在对应路径的数据集文件,测试阶段可以先注释掉read_csv这行,先验证绘图逻辑是否正常。 - 显式触发图表渲染
部分版本的Jupyter Lab不会自动输出matplotlib画布,在代码最后一行加上plt.show()即可主动触发绘图输出。 - 检查Jupyter Lab扩展安装
如果上述操作都无效,执行以下命令安装对应渲染扩展,重启Jupyter Lab后再运行代码即可:
pip install ipympl jupyter labextension install @jupyter-widgets/jupyterlab-manager ipympl
修正后可运行的完整代码
import pandas as pd import numpy as np import matplotlib.pyplot as plt from matplotlib import style import warnings warnings.filterwarnings("ignore") %matplotlib inline # 测试用数据集,实际使用时替换为read_csv逻辑即可 df = pd.DataFrame({'TotalPrice':[1.000, 0.650, 0.0075, 0.0025, 0.200], 'Voltage':[13.47, 13.41, 13.41, 13.41, 13.41], 'ConversionFactor':[934.0, 934.0, 2580.0, 934.0, 934.0], 'Litres':[40.0, 26.0, 3.0, 1.0, 8.0]}) # df = pd.read_csv('dataset.csv') fig, ax = plt.subplots(1,4, figsize = (8, 4)) ax[0].boxplot(df.TotalPrice) ax[1].boxplot(df.Voltage) ax[2].boxplot(df.ConversionFactor) ax[3].boxplot(df.Litres) plt.show()
内容的提问来源于stack exchange,提问作者Dinesh
相关产品推荐
相关产品推荐

