Balkendiagramm

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Alexander123
User
Beiträge: 1
Registriert: Dienstag 15. Juni 2021, 10:47

Liebe Community,

ich habe folgendes Problem:

ich möchte die Buchstaben auf der x-Achse in die Mitte des mittleren Balkens verschieben (A, B, C, D, E, F) und auf der x-Achse sollte die genauere Zeit zu jedem der Balken stehen. Leider weiß ich nicht wie das genau geht. Aufgeführt ist das funktionierende Beispiel, jedoch ohne der Zeitwerte, die eigentlich noch auf die x- Achse kommen sollten.

Wenn jemand einen entscheidenden Tipp geben könnte, wäre ich sehr dankbar.




import numpy as np
import matplotlib.pyplot as plt

N = 6
ind = np.arange(N) # the x locations for the groups
width = 0.3 # the width of the bars

fig = plt.figure()
ax = fig.add_subplot(111)


fig.dpi = 200
fig.set_size_inches(10, 6)


plt.title('Trefferhäufigkeit', fontsize=15)
plt.ylabel('Trefferanzahl', fontsize=12, labelpad = 12)
plt.xlabel("Zeit in s", fontsize=12, labelpad = 12)
plt.ylim(0, 21)


yvals = [15, 16, 17, 18, 19, 20]
rects1 = ax.bar(ind, yvals, width, color='r')

zvals = [15, 16, 17, 18, 19, 20]
rects2 = ax.bar(ind+width, zvals, width, color='b')

kvals = [15, 16, 17, 18, 19, 20]
rects3 = ax.bar(ind+width*2, kvals, width, color='g')

ax.set_xticks(ind+width)
ax.set_xticklabels( ("A", "B", "C", "D", "E", "F") )
ax.legend( (rects1[0], rects2[0], rects3[0]), ('A-F, 10 Uhr', 'A-F, 11 Uhr', 'A-F, 12 Uhr') )


def autolabel(rects):
for rect in rects:
height = rect.get_height()
ax.text(rect.get_x() + rect.get_width()/2., height + 0.002,
'%.f' % float(height),
ha='center', va='bottom')
autolabel(rects1)
autolabel(rects2)
autolabel(rects3)

plt.show()
fig.savefig("Treffer.png")
Antworten