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

Christopher
quelle

Antworten:

172

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

fig=plt.figure(figsize=(18, 16), dpi= 80, facecolor='w', edgecolor='k')
Roadrunner66
quelle
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

Tacaswell
quelle
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

SlimCheney
quelle
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
Hagne
quelle
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)
Jared Wilber
quelle
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]
Farrellw
quelle
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()
Gut
quelle