Jak powiększyć wykresy wbudowane w Jupyter Notebook?


262

Ułożyłem swoje wątki w notatniku Ipython za pomocą „ %matplotlib inline.”

Teraz pojawia się fabuła. Jest jednak bardzo mały. Czy istnieje sposób, aby zwiększyć rozmiar za pomocą ustawień notebooka lub ustawień wydruku?

wprowadź opis zdjęcia tutaj

Odpowiedzi:


172

Tak, graj z tym figuresizepodobnym (zanim zadzwonisz do swojego wątku podrzędnego):

fig=plt.figure(figsize=(18, 16), dpi= 80, facecolor='w', edgecolor='k')

28
f, (ax1, ax2, ax3) = plt.subplots (1,3, sharex = 'col', sharey = 'row', figsize = (18, 16)) dla tego konkretnego przypadku
— Rol

11
Nie działa. Zmiana figsize w moim przypadku zmienia tylko proporcje. Szerokość całkowitej liczby pozostaje stała
— Aleksejs Fomins

Jest to poprawne w przypadku liczb zbyt dużych, aby zmieściły się na stronie, wówczas skalowanie zatrzymuje się. Nadal może być przydatny do zmiany współczynnika kształtu, jak zauważyłeś.
— roadrunner66

1
Zwiększenie dpi do „200” zapewnia znacznie lepszy wynik niż tylko zmiana wielkości figury.
— Adithya Bhat

Tak, patrz @Hagne poniżej.
— roadrunner66

402

Domyślny rozmiar figury (w calach) jest kontrolowany przez

matplotlib.rcParams['figure.figsize'] = [width, height]

Na przykład:

import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = [10, 5]

tworzy figurę o wymiarach 10 (szerokość) x 5 (wysokość) cali


7
Jest to w rzeczywistości o wiele bardziej przydatne jako strategia „ustaw i zapomnij”, jeśli wszystkie fabuły są niedokładne.
— ijoseph

2
Wspaniały. Zmagało się to z rozmiarem pudła z pandami i to go naprawiło. Z jakiegoś powodu figsize=(x,y)argument jest nieskuteczny w jupyter. Jednak modyfikowanie matplob.rcParams, jak sugerujesz, działa idealnie.
— 0_0,

29
Upewnij się, że uruchomisz to po uruchomieniu %matplotlib inline.
— uut

@ uut nie jest to ustawienie domyślne?
— Verena Haunschmid

4
@VerenaHaunschmid działająca %matplotlib inlinepo ustawieniu rcParams wydaje się zastępować rozmiar figury z powrotem do wartości domyślnych.
— uut

62

%matplotlib notebookPrzekonałem się, że działa dla mnie lepiej niż w połączeniu z notatnikami Jupyter.

Pamiętaj, że może być konieczne zrestartowanie jądra, jeśli korzystałeś %matplotlib inlinewcześniej.

Aktualizacja 2019: Jeśli korzystasz z Jupyter Lab, możesz chcieć użyć %matplotlib widget


5
Może to działa w niektórych przypadkach, ale kiedy spróbowałem tego na moim, dał mi pusty obraz z ramką danych pand df.plot(). Musiałem wrócić do%matplotlib inline
— tsando

8
@tsando Widziałem problem polegający na tym, że przejście z %matplotlib inlinena %matplotlib notebookbez restartowania jądra daje pusty wynik. Przejście z %matplotlib notebookna %matplotlib inlinedziała dobrze.
— SlimCheney,

4
Dzięki @SlimCheney, potwierdzam, że to, co mówisz, jest prawdą - działa, jeśli zrestartujesz jądro
— tsando

1
To zdecydowanie
— przewyższa próbę

1
nie działa, nawet po ponownym uruchomieniu jądra. Daje puste wyjście
— Kardi Teknomo

31

Jeśli chcesz, aby obraz twojej figury był większy bez zmiany ogólnego wyglądu figury, zwiększ rozdzielczość figury. Zmiana rozmiaru rysunku, jak sugerowano w większości innych odpowiedzi, zmieni wygląd, ponieważ rozmiary czcionek nie są odpowiednio skalowane.

import matplotlib.pylab as plt
plt.rcParams['figure.dpi'] = 200

19

Pytanie dotyczy matplotlib, ale ze względu na wszystkich użytkowników R, którzy znajdą się tutaj, biorąc pod uwagę tytuł zależny od języka:

Jeśli używasz jądra R, po prostu użyj:

options(repr.plot.width=4, repr.plot.height=3)

11

Aby dopasować rozmiar jednej figury:

import matplotlib.pyplot as plt

fig=plt.figure(figsize=(15, 15))

Aby zmienić ustawienia domyślne, a zatem wszystkie swoje wykresy:

import matplotlib.pyplot as plt

plt.rcParams['figure.figsize'] = [15, 15]

0

Mały, ale ważny szczegół dotyczący jednorazowego dostosowania wielkości figury (jak zauważyło kilku komentatorów powyżej: „to nie działa dla mnie”):

Powinieneś zrobić plt.figure (figsize = (,)) PRZED zdefiniowaniem rzeczywistego wykresu. Na przykład:

Powinno to poprawnie ustawić rozmiar działki zgodnie z podanym rysunkiem:

values = [1,1,1,2,2,3]
_ = plt.figure(figsize=(10,6))
_ = plt.hist(values,bins=3)
plt.show()

Podczas gdy pokaże to fabułę z domyślnymi ustawieniami, które wydają się „ignorować” figsize:

values = [1,1,1,2,2,3]
_ = plt.hist(values,bins=3)
_ = plt.figure(figsize=(10,6))
plt.show()
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.