2017-05-10 3 views
0

Ich benutze IPython Notizbuch. Ich habe eine Menge Parzellen in der gleichen Zahl. Ich brauche diese Parzellen mit verschiedenen Achsparametern zu zeigen, das heißt, für die folgenden vier Fälle:Wie man ein pyplot mehrfach für verschiedene Achsenparameter neu zeichnet

Cases x-axis y-axis 
1  non-log non-log 
2  non-log log 
3  log  non-log 
4  log  log 

Gibt es eine einfache Art und Weise wie folgt aus:

#many lines of code for generating bunch of plots 
plt.show() 

#figure shown with non-log axis 

ax.set_yscale('log') 
plt.show() 

#figure shown with log y-axis  

ax.set_xscale('log') 
plt.show() 

#figure shown with log x-axis and log y-axis 

Antwort

1

plt.show() zeigen Figur (en) und discart sie danach. Es ist nicht vorgesehen, mehrmals in einem Skript verwendet zu werden.

Eine Option, die Sie haben, wäre Ihre Plotten in einer Funktion und abhängig von den Argumenten, erstellen Sie eine andere Figur. Im Folgenden werden Zahlen für alle 4 Fälle erstellt:

import matplotlib.pyplot as plt 
import numpy as np 

x = np.logspace(0,3, 250) 
y = .4*x 

def plot(x,y,logx=False, logy=False): 
    fig, ax = plt.subplots() 
    if logy: ax.set_yscale('log') 
    if logx: ax.set_xscale('log') 
    ax.plot(x,y) 


plot(x,y) 
plot(x,y, True, False) 
plot(x,y, False, True) 
plot(x,y, True, True) 

plt.show() 
Verwandte Themen