IPython使用Matplotlib画图时无法显示图片

IPython使用Matplotlib画图时无法显示图片


如题,在IPython Shell环境下,使用Matoploblib画图时无法显示图片

环境

系统:Windows10
Python版本:3.8
IPython版本:7.19.0
Matplotlib版本:3.3.3

画图尝试及反应

%matplotlib
import numpy as np
import matplotlib.pyplot as plt
plt.style.use('seaborn-white')
data = np.random.randn(1000)
plt.hist(data)

代码如上,在IPython Shell下,反应为下图,可以看到生成了一个文件对象,但并未显示出来:
在这里插入图片描述

找原因

在使用“%matplotlib”魔法命令后,反馈的是“Using matplotlib backend:agg”。与相关书籍、教程上的不一致,按照教程应该是Using matplotlib backend:TkAgg。
那么就需要强制使得Matplotlib使用TkAgg的后台。
借鉴CSDN上其他博主的经验,可以在import matplotlib之后加上语句matplotlib.use(‘TkAgg’)。可这样操作得到的反馈是“ModuleNotFoundError: No module named ‘tkinter’”。
根据经验,这通常是缺少包。于是自然而然就使用pip install tkinter。然而pip工具告诉我无法找到tkinter这个包。
在这里插入图片描述通过pip search tkinter,找到了很多相关包,但确实没有“tkinter"这个包。
通过查看官方文档,获得以下信息:
tkinter — Tcl/Tk的Python接口¶源代码: Lib/tkinter/init.pyThe tkinter package (“Tk interface”) is the standard Python interface to the Tk GUI toolkit. Both Tk and tkinter are available on most Unix platforms, as well as on Windows systems. (Tk itself is not part of Python; it is maintained at ActiveState.)在命令行中运行 python -m tkinter,应该会弹出一个Tk界面的窗口,表明 tkinter 包已经正确安装,而且告诉你 Tcl/Tk 的版本号,通过这个版本号,你就可以参考对应的 Tcl/Tk 文档了。
也就是说,tkinter是python的自带的,所以试了试修复python,还是不行!在运行python安装程序时,还有一个modify的按键,点击发现有tcl/tk and IDLE的复选框,描述为“Installs tkinter and the IDLE development environment"。看这描述,十有八九就是它了!
修改成功后,重启IPython,同样的代码敲入,果然matplotlib用的时TkAgg后台,然后也可以成功显示图片。
在这里插入图片描述

总结

从图片可以看到,其实弹出的是一个绘图窗口,因此需要Tkinter的支持。Tkinter不是第三方库,那么只有可能是自带的。通过modify发现这个控件时需要单独选择安装的 : )

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值