Распространение изображения по пространству оси в matplotlib - PullRequest
0 голосов
/ 29 октября 2018

Я использую matplotlib для создания графика данных и хочу добавить изображение / эскиз поверх этого графика. Однако с помощью приведенного ниже кода ширина изображения ограничена размером x на приведенном ниже графике или другими словами: хотя у меня нет оси y на изображении, я трачу там место.

Как сделать так, чтобы область изображения покрывала всю ширину?

Мой код до сих пор:

fig, ((ax,ax0)) = plt.subplots(nrows=2, ncols=1, sharex=False, sharey=False, 
                    figsize=[5,4],gridspec_kw={"height_ratios":[1,4],'hspace':0.05})

ax0.set_xlabel('X AXIS LABEL')
ax0.set_ylabel(r'Y AXIS LABEL')

ax.set_xticks([])
ax.set_yticks([])
ax.text(.5,.5,"IMAGE",ha='center',va='center')

plt.tight_layout()

What I have until now

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

imshow может это сделать!

import pandas as pd
import matplotlib.pyplot as plt
import requests

r = requests.get('https://upload.wikimedia.org/wikipedia/commons/c/cc/Rodger_Young.jpg', stream=True)

with open("young.jpg", "wb") as file:
  file.write(r.raw.read())


image = plt.imread("young.jpg")
plt.imshow(image)

Дает: Rodger Young

Все знакомые вам методы plt все еще должны быть доступны вам.

r = requests.get('https://upload.wikimedia.org/wikipedia/commons/c/cc/Rodger_Young.jpg', stream=True)

with open("young.jpg", "wb") as file:
  file.write(r.raw.read())


image = plt.imread("young.jpg")

plt.suptitle("Rodger Young")
plt.axis("off")

plt.imshow(image)

Дает: Cleanly rendered Rodger Young, with title

0 голосов
/ 29 октября 2018

Вы можете определить сетку самостоятельно, и пусть верхний участок занимает две строки.

import matplotlib.pyplot as plt
from matplotlib.gridspec import GridSpec

fig = plt.figure(figsize=[5,4])
gs = GridSpec(2,2, height_ratios=[1,4], width_ratios=[0,1])

ax = fig.add_subplot(gs[0,:])
ax0 = fig.add_subplot(gs[1,1])

ax0.set_xlabel('X AXIS LABEL')
ax0.set_ylabel(r'Y AXIS LABEL')

ax.set_xticks([])
ax.set_yticks([])
ax.text(.5,.5,"IMAGE",ha='center',va='center')

fig.tight_layout(h_pad=0.2)

plt.show()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...