2017-04-05 2 views
2

Ich benutze Python 2.7 und versuche, eine einfache Perzentil Fledermaus-Diagramm zu plotten.Warum plt.show() zeigt eine zusätzliche leere Zahl

erhalte ich die Figur, die ich will, das Problem ist, dass mit ihr, wenn plt.show mit() i ein zusätzliches leeres Bild zu erhalten,

Ich versuchte plt.close(), plt.clf () und plt.figure() ein sauberes PLT-Objekt zu erstellen, das ist meine Funktion:

import matplotlib.pyplot as plt 
plt.grid(True) 
data = zip(*percentiles) 

data = [list(i) for i in data] 
tick_range = data[0] 

ticks = [str(i) + "%" for i in tick_range] 
tick_range = [x+2.5 for x in tick_range] 

fig, ax = plt.subplots() 
plt.bar(data[0], data[1], width=5) 

plt.show() 

die Daten (Perzentile) Variable der folgenden Struktur ist [(i, v), (i, v). ...] wenn i ein Index ist und v ein Fließkommawert ist.

Danke!

Antwort

3

Das Problem ist, dass plt.grid(True) auf der aktuellen Abbildung arbeitet und da keine Zahl vorhanden ist, wenn Sie zu dieser Zeile gelangen, wird eine automatisch erstellt. Dann erstellen Sie andere Figur, wenn Sie plt.subplots()

rufen Sie sollten die Rasterlinien nach fügen Sie Ihre Diagramme erstellen

plt.bar(data[0], data[1], width=5) 
plt.grid(True) 

plt.show() 

Alternativ nur bar aufrufen, ohne Aufruf subplots seit bar wird automatisch eine Figur erstellen und Achsen nach Bedarf.

plt.grid(True) 
plt.bar(data[0], data[1], width=5) 
plt.show() 
+0

nur, wenn ich 'Fig auszuführen, Achsen = plt.subplots (nrows = 2, ncols = 1, figsize = (17, 10))' 'und plt.show()' gibt mir eine zusätzliche leere Abbildung bereits!? Verwenden von Matplotlib Version 1.5.3. Was mache ich falsch? – danger89

Verwandte Themen