Matplotlib笔记 · 禁止Matplotlib在Jupyter中输出文本信息

这是个非常初级的问题,但很有趣,值得记录一下(本文地址:https://blog.csdn.net/bluishglc/article/details/128576673,转载请注明出处)。

1. 如何禁止Matplotlib在Jupyter中输出文本信息?

在Jupyter环境下,我们经常会发现Matplotlib在输出图像的同时会伴随输出一些文本信息,其实这些文本信息是当前Cell最后一行代码返回的那个变量,由于在Jupyter中大部分情况下每个Cell的最后一步都是Matplotlib的绘图代码,所以就会看到各种各样不同的文本信息,有时是横纵坐标轴的数组数据,有时是annotation数据等等,这取决于最后一行返回的是Matplotlib的什么对象。

禁止Matplotlib在Jupyter中输出文本信息的方法很简单,就是在最后一行添加plt.show(),令很多新人困惑的是:这个方法做了什么从而阻止了文本信息的输出呢?其实这个问题想通以后还是很低级的。

2. 为什么plt.show()能阻止文本信息的输出?

我们知道,当调用plt.show()就开始图像的实际绘制了,在Jupyter环境中,受migic函数%matplotlib inline的作用,所有图像都会在最后自动显示出来(其实是自动调用了plt.show()),所以通常大家是不会手动调用plt.show()的,而当Cell的最后一行代码是Matplotlib的某种操作时,则整个Cell最后输出的就是这个操作返回的Matplotlib里的某种对象/变量,Jupyter就会将这个变量打印出来,事情就是这么简单。

为什么在显式调用plt.show()后就不会打印文本信息了呢?首先,明确一下,必须是在Jupyter Cell的最后一行调用plt.show()才有效,其次,不打印文本信息与plt.show()本身没有太大关系,关键原因是**plt.show()的返回值是None,在Cell的最后一行调用plt.show()时,Cell最后输出的就是一个None,所以就不会打印任何数据了。**

3. 这些文本信息有用吗?需要保留吗?

最后,讨论一下Matplotlib打印的文本信息有没有用,需不需要保留打印功能。我们可以看到所有信息都是Matplotlib组件的信息,部分的组件确实会打印大量的数据,但这些信息未必都是填充的原始数据,而很有可能是横纵坐标轴使用的数组信息,说到底,都是为绘图准备的。所以,绝大多数情况下都不需要查看这些数据,如果需要在程序中打印数据,就应该显示地调用print或使用Cell分段,这才是最佳实践。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Laurence 

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值