Anmerkungen Balkendiagramm pandas

Ich habe ein Balkendiagramm, das zeigt 2 bars für 2015 und einen für 2016.

  • x-Achse zeigt Droge Namen
  • y-Achse zeigt die Menge vorgeschrieben

Ich würde gerne Anzeige Anmerkungen an den bars, nur um es noch klar die Nummer vorgeschrieben. Ich habe Folgendes versucht, aber es passiert nichts?

Weiß jemand, wo ich bin mache ich falsch?

Hier ist mein code

for p in ax.patches:
ax.annotate(str(p.get_height()), (p.get_x() * 1.005, p.get_height() * 1.005))

fig = plt.figure() # Create matplotlib figure

ax = fig.add_subplot(111) # Create matplotlib axes

width = 0.4

df.Occurance_x.plot(kind='bar', color='purple', ax=ax, width=width, position=1)
df.Occurance_y.plot(kind='bar', color='blue', ax=ax, width=width, position=0)

ax.set_ylabel('Amount Prescribed in 1 year')
x_labels = df.VTM_NM
ax.set_xticklabels(x_labels, rotation=30)
plt.legend(['2016', '2017'], loc='upper right')
ax.set_title('BNF Chapter 1 Top 5 drugs prescribed')


plt.show()
  • Sie müssen 4 Leerzeichen auf der Zeile nach der for ein.
InformationsquelleAutor Sarah | 2017-12-02

 

2 Replies
  1. 1

    Denkst du, dass dies helfen kann:

    import pandas as pd
    df = pd.DataFrame({"date_x":[2015]*5,
                       "Occurance_x":[2994, 2543, 2307, 1535, 1511],
                       "VTM_NM":["Not Specified", "Mesalazine", "Omeprazole",
                                 "Esomeprazole", "Lansoprazole"],
                       "date_y":[2016]*5,
                       "Occurance_y":[3212, 2397, 2370, 1516, 1547]})
    
    ax = df[["VTM_NM","Occurance_x", "Occurance_y"]].plot(x='VTM_NM', 
                                                          kind='bar', 
                                                          color=["g","b"],
                                                          rot=45)
    ax.legend(["2015", "2016"]);
    for patch in ax.patches:
        bl = patch.get_xy()
        x = 0.5 * patch.get_width() + bl[0]
        # change 0.92 to move the text up and down
        y = 0.92 * patch.get_height() + bl[1] 
        ax.text(x,y,"%d" %(patch.get_height()),
                ha='center', rotation='vertical', weight = 'bold')

    Anmerkungen Balkendiagramm pandas

    Bearbeiten

    Wenn Sie dann wollen, ein schöner Stil, kann man dieses am Anfang

    from matplotlib import pyplot as plt
    plt.style.use('fivethirtyeight')

    und ändern ax.legend(["2015", "2016"]) mit ax.legend(["2015", "2016"], frameon=False). Für eine vollständige Liste der Formatvorlagen-Typ plt.style.available

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.