web-dev-qa-db-fra.com

Augmentez le DPI de Matplotlib .show () dans Jupyter Notebook

J'utilise Matplotlib dans un cahier Jupyter pour afficher une image d'une carte. Le code ressemble à ceci:

%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)

Le problème est que, bien que plt.savefig('test.png', dpi = 300) soit correct (car j'ai changé le dpi en 300), l'image affichée dans le portable est si basse résolution que je ne peux rien y voir et plt.imshow(img, dpi = 300) ne fonctionne pas:

Image displayed in notebook

Donc, ce que je me demande, c'est s'il existe un moyen de changer la résolution de l'image affichée dans le bloc-notes Jupyter?

Merci beaucoup, Alex

Réponse:

Politinsa m'a suggéré d'ajouter ceci au début du fichier:

import matplotlib as mpl
mpl.rcParams['figure.dpi'] = 300

Et cela résout le problème.

8
Alex S

Ajoutez ceci au début du cahier:

import matplotlib as mpl
mpl.rcParams['figure.dpi'] = 300

C'est ça !

17
politinsa

Si votre écran affiche Retina, ajoutez la ligne suivante après %matplotlib inline (ou ailleurs avant de tracer) dans votre cahier

%config InlineBackend.figure_format = 'retina'

Cela augmentera la résolution d'affichage de vos tracés dans le Jupyter Notebook.

13
Sheldore