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.

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

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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.