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

Krzysztof
źródło

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')
roadrunner66
źródło
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

Tacaswell
źródło
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

SlimCheney
źródło
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
Hagne
źródło
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)
Jared Wilber
źródło
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]
farrellw
źródło
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()
RGood
źródło