Matplotlib不能弹出figure可能仅仅是你没有执行plt.show()

本文详细介绍了在PyCharm环境下使用Matplotlib进行绘图时遇到的问题及解决方法,强调了社区版与专业版的区别,并给出了如何正确显示图像的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我在学习matplotlib,执行代码非常简单:

import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()  # Create a figure containing a single axes.
ax.plot([1, 2, 3, 4], [1, 4, 2, 3])  # Plot some data on the axes.

这个就是Matplotlib官网上的使用指南的第一个例子,但是我执行后虽然没有报错,但是也没有弹出figure窗口。网上看到最多的是这类解决方案:新版Pycharm中Matplotlib图像不在弹出独立的显示窗口
但这些文章讲的内容都是专业版的PyCharm,我的是community版,根本没有文中提到的功能。
我尝试在PyCharm的Terminal中执行,执行后可以弹出figure窗口,这就证明软件是没有问题的。
再次查找资料,最终发现只是没有输入:

plt.show()

总结

PyCharm中执行的很多代码和教程上是不一样的,比如教程中会写:

from sklearn import datasets
import matplotlib.pyplot as plt
iris = datasets.load_iris()
data = iris.data
digits = datasets.load_digits()
digits.images.shape

执行的结果为:(1797, 8, 8)
实际上必须将最后一行改为

print(digits.images.shape)

我在学习Python中类似的例子非常非常多,一定要注意变化。

### 回答1: 可以使用 `plt.show(block=False)` 来执行 `plt.show()` 不暂停。具体代码如下: ```python import matplotlib.pyplot as plt plt.plot([1, 2, 3, 4]) plt.show(block=False) ``` 或者 ```python import matplotlib.pyplot as plt plt.plot([1, 2, 3, 4]) plt.ion() plt.show() ``` 注意,使用`plt.ion()`需要在`plt.show()`之前调用。 ### 回答2: 要想执行plt.show()函数后不暂停程序运行,可以在代码中添加plt.ion()函数。 具体代码如下: ```python import matplotlib.pyplot as plt # 开启交互模式 plt.ion() # 创建一个图形窗口 plt.figure() # 绘制图形 plt.plot([1, 2, 3, 4], [1, 4, 9, 16]) # 显示图形并不暂停 plt.show(block=False) # 后续代码会继续执行 print('后续代码…') ``` 在这个示例代码中,我们首先通过plt.ion()开启了交互模式,然后创建了一个图形窗口,绘制了一条简单的曲线。接着使用plt.show(block=False)函数来显示图形,并且设置block参数为False,这样plt.show()函数在显示完图形后将不会暂停程序的运行,而是立即返回。之后的后续代码将会继续执行。 需要注意的是,需要在运行此代码之前确保已经正确安装了matplotlib库,并且确保所使用的开发环境(如Jupyter Notebook)能够正确显示图形。 ### 回答3: 在使用Matplotlib绘图,可以通过plt.ion()实现不暂停的显示效果。 具体实现代码如下: ```python import matplotlib.pyplot as plt # 开启交互模式 plt.ion() # 绘制图形 plt.plot([1, 2, 3, 4], [1, 4, 9, 16]) # 显示图形 plt.show() # 此图形显示后不会暂停,可以继续进行后续操作 # 例如修改图形、更新数据等 plt.pause(1) # 暂停1秒 # 关闭交互模式 plt.ioff() # 显示图形并阻塞程序,直到关闭图形窗口 plt.show() ``` 在代码中,首先使用`plt.ion()`函数开启交互模式,然后使用`plt.show()`函数显示图形,此图形会在后台不暂停地显示。 在需要人为控制图形显示的过程中,可以使用`plt.pause(t)`函数暂停指定间t(单位为秒),来进行一些操作或观察图形。 最后使用`plt.ioff()`关闭交互模式,然后使用`plt.show()`显示图形并阻塞程序,直到关闭图形窗口才会终止程序的执行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Ampare1987

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

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

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

打赏作者

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

抵扣说明:

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

余额充值