Wie vergrößere ich Inline-Diagramme in Jupyter Notebook?


263

Ich habe meine Diagramme auf meinem Ipython-Notizbuch mit " %matplotlib inline."

Nun erscheint die Handlung. Es ist jedoch sehr klein. Gibt es eine Möglichkeit, es mit Notebook-Einstellungen oder Plot-Einstellungen größer erscheinen zu lassen?

Geben Sie hier die Bildbeschreibung ein

Antworten:


172

Ja, spielen Sie mit figuresizeso (bevor Sie Ihre Nebenhandlung aufrufen):

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)) für diesen speziellen Fall
Rol

12
Funktioniert nicht. Durch Ändern der Größe in meinem Fall wird nur das Seitenverhältnis geändert. Die Breite der Gesamtzahl bleibt fest
Aleksejs Fomins

Das ist richtig für Zahlen, die zu groß sind, um auf die Seite zu passen, dann stoppt die Skalierung. Es kann immer noch nützlich sein, um das Seitenverhältnis zu ändern, wie Sie bemerkt haben.
Roadrunner66

1
Das Erhöhen von dpi auf '200' liefert ein viel besseres Ergebnis als nur das Ändern der Figurengröße.
Adithya Bhat

Ja, siehe @Hagne unten.
roadrunner66

403

Die Standardgröße der Figur (in Zoll) wird von gesteuert

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

Beispielsweise:

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

erstellt eine Figur mit 10 (Breite) x 5 (Höhe) Zoll


7
Dies ist als Set-It-and-Forget-It-Strategie viel nützlicher, wenn alle Grundstücke eine falsche Größe haben.
Ijoseph

2
Toll. Kämpfte mit Pandas Boxplot Größe und dies reparierte es. Aus irgendeinem Grund ist das figsize=(x,y)Argument in Jupiter unwirksam. Das Ändern matplob.rcParamsfunktioniert jedoch, wie Sie vorschlagen, einwandfrei.
0_0

29
Stellen Sie sicher, dass Sie dies nach dem Ausführen ausführen %matplotlib inline.
Uut

@uut ist das nicht die Standardeinstellung?
Verena Haunschmid

4
@VerenaHaunschmid, das %matplotlib inlinenach dem Festlegen von rcParams ausgeführt wird, scheint die Figurengröße wieder auf den Standardwert zurückzuschreiben.
uut

63

Ich habe festgestellt, dass dies %matplotlib notebookfür mich besser funktioniert als für Jupyter-Notebooks.

Beachten Sie, dass Sie den Kernel möglicherweise neu starten müssen, wenn Sie ihn %matplotlib inlinezuvor verwendet haben.

Update 2019: Wenn Sie Jupyter Lab ausführen, möchten Sie möglicherweise verwenden %matplotlib widget


5
Vielleicht funktioniert das in einigen Fällen, aber als ich es bei mir ausprobierte, bekam ich ein leeres Bild mit einem Pandas-Datenrahmen df.plot(). Ich musste zurück zu%matplotlib inline
Tsando

8
@tsando Ich habe ein Problem gesehen, bei dem der Wechsel von %matplotlib inlinezu %matplotlib notebookohne Neustart des Kernels eine leere Ausgabe ergibt. Das Umschalten von %matplotlib notebookauf %matplotlib inlinefunktioniert einwandfrei.
SlimCheney

4
Danke @SlimCheney, ich bestätige, dass das, was Sie sagen, wahr ist - es funktioniert, wenn Sie den Kernel neu starten
tsando

1
Dies ist definitiv
besser als der

1
Es funktioniert nicht, auch nach dem Neustart des Kernels. Es gibt eine leere Ausgabe
Kardi Teknomo

31

Wenn Sie nur möchten, dass das Bild Ihrer Figur größer erscheint, ohne das allgemeine Erscheinungsbild Ihrer Figur zu ändern, erhöhen Sie die Auflösung der Figur. Wenn Sie die Figurengröße wie in den meisten anderen Antworten vorgeschlagen ändern, ändert sich das Erscheinungsbild, da die Schriftgrößen nicht entsprechend skaliert werden.

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

19

Die Frage ist ungefähr matplotlib, aber für alle R-Benutzer, die hier landen und den sprachunabhängigen Titel erhalten:

Wenn Sie einen R-Kernel verwenden, verwenden Sie einfach:

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

11

So passen Sie die Größe einer Figur an:

import matplotlib.pyplot as plt

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

So ändern Sie die Standardeinstellungen und damit alle Ihre Diagramme:

import matplotlib.pyplot as plt

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

1

Ein kleines, aber wichtiges Detail für die einmalige Anpassung der Figurengröße (wie mehrere Kommentatoren oben berichteten, "das funktioniert bei mir nicht"):

Sie sollten plt.figure (figsize = (,)) VOR der Definition Ihres tatsächlichen Plots ausführen. Beispielsweise:

Dies sollte die Größe des Grundstücks entsprechend Ihrer angegebenen Größe anpassen:

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

Während dies den Plot mit den Standardeinstellungen zeigt, scheint figsize zu "ignorieren":

values = [1,1,1,2,2,3]
_ = plt.hist(values,bins=3)
_ = plt.figure(figsize=(10,6))
plt.show()
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.