Ich verwende derzeit Matplotlib, um ein Histogramm zu erstellen:
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as pyplot
...
fig = pyplot.figure()
ax = fig.add_subplot(1,1,1,)
n, bins, patches = ax.hist(measurements, bins=50, range=(graph_minimum, graph_maximum), histtype='bar')
#ax.set_xticklabels([n], rotation='vertical')
for patch in patches:
patch.set_facecolor('r')
pyplot.title('Spam and Ham')
pyplot.xlabel('Time (in seconds)')
pyplot.ylabel('Bits of Ham')
pyplot.savefig(output_filename)
Ich möchte die Beschriftungen der x-Achse etwas aussagekräftiger machen.
Erstens scheinen die x-Achsen-Ticks hier auf fünf Ticks beschränkt zu sein. Egal was ich mache, ich kann das scheinbar nicht ändern - selbst wenn ich mehr xticklabels hinzufüge, werden nur die ersten fünf verwendet. Ich bin nicht sicher, wie Matplotlib dies berechnet, aber ich gehe davon aus, dass es automatisch aus dem Bereich / den Daten berechnet wird.
Gibt es eine Möglichkeit, die Auflösung von X-Tick-Beschriftungen zu erhöhen - sogar bis zu einem Punkt für jeden Balken / Behälter?
(Idealerweise möchte ich auch, dass die Sekunden in Mikrosekunden / Millisekunden neu formatiert werden, aber das ist eine Frage für einen anderen Tag).
Zweitens möchte ich, dass jeder einzelne Balken beschriftet wird - mit der tatsächlichen Nummer in diesem Behälter sowie dem Prozentsatz der Gesamtzahl aller Behälter.
Die endgültige Ausgabe könnte ungefähr so aussehen:
Ist so etwas mit Matplotlib möglich?
Prost, Victor