Wie deaktiviere ich xkcd in einer Matplotlib-Figur?

7

Sie aktivieren xkcd style by:

%Vor%

Aber wie kann ich es deaktivieren?

Ich versuche es:

%Vor%

Aber es wird nicht funktionieren.

    
alwbtc 09.03.2014, 16:34
quelle

3 Antworten

9

Ich sehe das im Dokument, hilft es?

%Vor%

Wenn nicht, können Sie sich den Code von matplotlib.pyplot.xkcd ansehen und sehen, wie er den Context-Manager generiert, der das Rückgängigmachen der Konfiguration ermöglicht

    
Valentin Lorentz 09.03.2014, 16:38
quelle
20

Kurz gesagt, verwenden Sie entweder den Kontextmanager als @Valentin oder rufen Sie plt.rcdefaults() danach auf.

Was passiert ist, dass die Parameter rc von plt.xkcd() geändert werden (was im Prinzip so ist).

plt.xkcd() speichert die aktuelle rc params gibt einen Kontextmanager zurück (so dass Sie eine with -Anweisung verwenden können), die sie am Ende zurücksetzt. Wenn Sie nicht an dem Kontext-Manager festhalten, den plt.xkcd() zurückgibt, können Sie nicht zu exakt denselben rc params zurückkehren, die Sie zuvor hatten.

Mit anderen Worten, nehmen wir an, Sie haben etwas wie plt.rc('lines', linewidth=2, color='r') vor dem Aufruf von plt.xkcd() getan. Wenn Sie with plt.xkcd(): oder manager = plt.xkcd() nicht ausgeführt haben, geht der Status von rcParams nach dem Aufruf von plt.rc verloren.

Sie können jedoch zum Standard rcParams zurückkehren, indem Sie plt.rcdefaults() aufrufen. Sie behalten nur bestimmte Änderungen vor, die Sie vor dem Aufruf von plt.xkcd() vorgenommen haben.

    
Joe Kington 09.03.2014 20:20
quelle
3

Sie könnten es versuchen

%Vor%

Dies sollte den vorherigen Zustand zurücksetzen und den Kontextmanager emulieren. Offensichtlich hat es nicht alle Funktionen für einen Kontextmanager, z. B. das Zurücksetzen im Falle von Ausnahmen, etc.

Oder ohne die Interna des Kontextmanagers zu stören

%Vor%     
user3622450 20.05.2014 02:53
quelle

Tags und Links