Jak zmienić rozmiar figury za pomocą wykresów podrzędnych?

287

Natrafiłem na ten przykład na stronie Matplotlib. Zastanawiałem się, czy można zwiększyć rozmiar figury.

Próbowałem z

f.figsize(15,15)

ale nic nie robi.

Brian
źródło

Odpowiedzi:

526

Jeśli masz już obiekt figury użyj:

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

Ale jeśli użyjesz polecenia .subplots () (jak w pokazanych przykładach), aby utworzyć nową figurę, możesz również użyć:

f, axs = plt.subplots(2,2,figsize=(15,15))
Rutger Kassies
źródło
12
istnieje również fig.set_size_inchesmożliwość ustawienia wysokości i szerokości razem
Francesco Montesano
1
To nie działa, możesz ustawić wysokość na cokolwiek chcesz, ale nigdy nie będzie większa niż monitor.
2
Nie ma to nic wspólnego z monitorem. Co jeśli wyślesz do pliku png? Mówisz, że nigdy nie może być większa niż rozdzielczość ekranu? Jest to kombinacja wielkości w calach z dpi, która określa rozmiar w pikselach.
Rutger Kassies
wydaje się, że dołączanie figsize do wywołania podplotów () nie działa. jednak wywołanie f.set_figheight działa.
Vicki B,
Czy można zmienić sam rozmiar podplotu bez zmiany rozmiaru figs?
Alexis.Rolland
38

Alternatywnie utwórz figure()obiekt za pomocą figsizeargumentu, a następnie użyj, add_subplotaby dodać swoje podploty. Na przykład

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:')

Prosty przykład

Zaletą tej metody jest to, że składnia jest bliższa wywołaniom subplot()zamiast subplots(). Np. Wydaje się, że podploty nie obsługują używania a GridSpecdo kontrolowania odstępów między podplotami, ale oba subplot()i add_subplot()tak.

aquirdturtle
źródło
10
Czy istnieje możliwość dodania „rozmiaru” do topora i ax2 osobno?
M. Gopal
2
Jeśli dobrze rozumiem, czy chcesz ustawić względny rozmiar dwóch osi? W takim razie myślę, że szukasz tego pytania: stackoverflow.com/questions/10388462/...
aquirdturtle