Pycharm(Python)下imshow函数显示问题的解决方法

博客指出在Jupyter Notebook中使用matplotlib的imshow函数显示图像正常,但在IDE(如PyCharm)中会出现闪退或无法显示的情况。原因是Notebook较强大,缺少部分代码也能显示,而正常Python代码需在imshow后加show函数。还给出官方参考和示例。

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

问题描述

在很多情况下,我们都需要使用matplotlib里面的imshow函数来显示图像,如果使用的是jupyter notbook直接输入matplotlib.pyplot.imshow()来显示是没有任何问题的。但是在IDE中()比如pycharm就会出现闪退或者无法显示的情况。

解决方法

原因是有些书籍中确实只把代码给到imshow这一行,但是其实因为notebook过于强大,可以在缺少某些代码的情况下正常显示(我猜的)。而正常的python代码中应该在最后面加入显示的show()函数,我的理解是imshow()只是对需要现实的的图片进行参数定义(比如大小,颜色,xy轴信息),而show()才是最终打印的函数。

广泛流行的方法就是 在matplotlib.pyplot.imshow(…)的后面再加上一行matplotlib.pyplot.show(注意括号里为空)

下面给出官方的reference和一个demo,大家可以参考进行规范编程

官方reference

https://matplotlib.org/api/_as_gen/matplotlib.pyplot.imshow.html#matplotlib-pyplot-imshow

matplotlib.pyplot.imshow
matplotlib.pyplot.imshow(X, cmap=None, norm=None, aspect=None, interpolation=None, alpha=None, vmin=None, vmax=None, origin=None, extent=None, shape=, filternorm=1, filterrad=4.0, imlim=, resample=None, url=None, *, data=None, **kwargs)[source]
Display an image, i.e. data on a 2D regular raster.

官方demo

Barcode Demo

This demo shows how to produce a one-dimensional image, or “bar code”.

import matplotlib.pyplot as plt
import numpy as np

#Fixing random state for reproducibility
np.random.seed(19680801)

#the bar
x = np.random.rand(500) > 0.7

barprops = dict(aspect='auto', cmap='binary', interpolation='nearest')

fig = plt.figure()

#a vertical barcode
ax1 = fig.add_axes([0.1, 0.1, 0.1, 0.8])
ax1.set_axis_off()
ax1.imshow(x.reshape((-1, 1)), **barprops)

#a horizontal barcode
ax2 = fig.add_axes([0.3, 0.4, 0.6, 0.2])
ax2.set_axis_off()
ax2.imshow(x.reshape((1, -1)), **barprops)

plt.show()

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值