2016-07-01 20 views
0

Ich verwende Matplotlib, um ein Balkendiagramm zu zeichnen. Die meisten meiner Datenwerte liegen im Bereich von -10 bis +30. Ich habe jedoch zwei Datenwerte, die um -300 liegen.Matplotlib Plot Balkendiagramm mit maximaler Länge

Wenn ich meine Daten grafisch darstelle, sieht die Datenleiste -300 Daten zu groß aus und verbirgt die Einsichten der anderen Balken. Gibt es eine Möglichkeit, alle Balken im Bereich von -10 bis +30 zu plotten, den -300 Balken bei -30 zu schneiden und statt dessen eine Beschriftung "-300" zu schreiben?

Antwort

3

Verwenden Sie ax.set_ylim() zum Festlegen der Ylimits und ax.annotate zum Schreiben der Beschriftung (und, wenn Sie möchten, ein Pfeil).

Zum Beispiel:

import matplotlib.pyplot as plt 

fig, ax = plt.subplots(1) 

y = [-5, 10, 25, -10, 30, -300, 20, 30, -10, -300, 0, 4] 
x = range(len(y)) 

ax.bar(x, y, width=1, alpha=0.5) 

ymin, ymax = -15, 35 
ax.set_ylim(ymin, ymax) 

for xbar,ybar in zip(x,y): 

    if ybar < ymin: 

     ax.annotate(
       ybar, 
       xy=(xbar+0.5, -14), 
       xytext=(xbar+0.5, -8), 
       rotation=90, ha='center', va='center', 
       arrowprops=dict(arrowstyle="->")) 

plt.show()