Попытка отобразить изображения с помощью PIL и BytesIO, но ничего не возвращает - PullRequest
1 голос
/ 08 января 2020

Я пытаюсь отобразить логотипы из набора данных. Набор данных выглядит следующим образом:

Player      Club Logo        
tom         https://abc.png
jerry       https://def.png
peter       https://frf.png
woody       https://awt.png

Однако он не вернул мне никаких логотипов. Все, что он показал, было 4 пустых поля сетки. Мой код ниже. Я также попытался использовать im = Image.open(BytesIO(r.content)).show(), но вместо этого на моем компьютере открылись логотипы.

import matplotlib.pyplot as plt
import requests

from PIL import Image
from io import BytesIO

fig, ax = plt.subplots(2,2, figsize=(2,2))

for i in range(4):
    r = requests.get(df['Club Logo'][i])
    im = Image.open(BytesIO(r.content))

plt.show()

Спасибо

1 Ответ

1 голос
/ 08 января 2020

Начиная с этих изображений:

"0.png":

enter image description here

"1.png":

enter image description here

"2.png":

enter image description here

"3.png":

enter image description here

Я думаю, вы хотите это:

#!/usr/bin/env python3

from PIL import Image
import numpy as np
import matplotlib.pyplot as plt

fig, ax = plt.subplots(2,2, figsize=(2,2))

for i in range(4): 
    # Load image and make into Numpy array
    im = Image.open(f'{i}.png').convert('RGB') 
    na = np.array(im) 
    # Shove into the plot
    ax[i%2][i//2].imshow(na) 

fig.show()

enter image description here

...