我正在Jupyter Notebook中使用Matplotlib来显示地图图像。代码如下:
%matplotlib inline
imgpath = './map.png'
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np
from PIL import Image
img = Image.open(imgpath)
print(img.size)
width, height = img.size
# img.thumbnail((width * 2,height * 2), Image.ANTIALIAS) # resizes image in-place
imgplot = plt.imshow(img)
plt.savefig('test.png', dpi = 300)
问题是,尽管plt.savefig('test.png', dpi = 300)
看起来不错(因为我将dpi更改为300),但笔记本中显示的图像分辨率太低,无法在其中显示任何内容,并且{{1 }}不起作用:
所以我想知道是否有办法改变Jupyter Notebook中显示的图像的分辨率?
非常感谢Alex
答案:
Politinsa建议我将其添加到文件的开头:
plt.imshow(img, dpi = 300)
它可以解决问题。
答案 0 :(得分:11)
在笔记本的开始处添加它:
import matplotlib as mpl
mpl.rcParams['figure.dpi'] = 300
就是这样!
答案 1 :(得分:9)
如果您的屏幕具有Retina显示屏,请在笔记本中[ActionName("Contact2")]
之后(或绘图之前的其他位置)添加以下行
%matplotlib inline
这将提高Jupyter笔记本中地物的显示分辨率。
答案 2 :(得分:3)
使用 this answer 中提出的解决方案存在将 DPI 应用于将在笔记本中创建的所有其他图形的缺点。
这在大多数情况下是没问题的,但如果你只需要为一个数字设置 DPI 值,你可以这样做:
plt.imshow(img)
plt.gcf().set_dpi(300)
plt.show()