Як змінити розмір фігури за допомогою subplots?


287

Я натрапив на цей приклад на веб-сайті Matplotlib. Мені було цікаво, чи можна збільшити розмір фігури.

Я спробував

f.figsize(15,15)

але це нічого не робить.

Відповіді:


527

Якщо ви вже використовуєте об'єкт фігури:

f.set_figheight(15)
f.set_figwidth(15)

Але якщо ви використовуєте команду .subplots () (як у показаних прикладах) для створення нової фігури, ви також можете використовувати:

f, axs = plt.subplots(2,2,figsize=(15,15))

12
є також fig.set_size_inchesвстановити висоту та ширину разом
Франческо Монтесано

1
Це не працює, ви можете встановити висоту на все, що завгодно, але він ніколи не буде більшим, ніж ваш монітор.

2
Це не має нічого спільного з монітором. Що робити, якщо ви виведете на png? Ви кажете, що вона ніколи не може бути більшою, ніж роздільна здатність екрана? Його поєднання розміру в дюймах з dpi, що визначає розмір у пікселях.
Rutger Kassies

включаючи figsize у виклику до subplots (), схоже, не працює. виклик f.set_figheight, однак, працює.
Вікі Б

Чи можливо змінити розмір субплоту без зміни фігури?
Alexis.Rolland

38

Крім того, створіть figure()об’єкт, використовуючи figsizeаргумент, а потім використовуйте add_subplotдля додавання своїх субплотів. Напр

import matplotlib.pyplot as plt
import numpy as np

f = plt.figure(figsize=(10,3))
ax = f.add_subplot(121)
ax2 = f.add_subplot(122)
x = np.linspace(0,4,1000)
ax.plot(x, np.sin(x))
ax2.plot(x, np.cos(x), 'r:')

Простий приклад

Переваги цього методу полягають у тому, що синтаксис наближається до викликів subplot()замість subplots(). Наприклад, підпрограми, схоже, не підтримують використання GridSpecінтервалу між підрозділами, але обидва subplot()і add_subplot()так.


10
Будь-яка можливість додати "розмір" до ax і ax2 окремо?
М. Гопал

2
Якщо я правильно розумію, ви хочете встановити відносний розмір двох осей? У цьому випадку, я думаю , що ви шукаєте це питання: stackoverflow.com/questions/10388462 / ...
aquirdturtle
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.