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.