Seite 1 von 1

Balkendiagramm

Verfasst: Dienstag 15. Juni 2021, 11:01
von Alexander123
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")