Ich habe einen Code, der eine benutzerdefinierte Balkendiagramm Plots:Nullwerte in barchart - Matplotlib
def bar_chartQ2(sizes, colors, x_labels, c_labels, file_name):
y, x = sizes.shape
ind = np.arange(y)*8
width = 0.7
plt.figure()
for i in range(x):
plt.bar(ind + width*i, sizes[:, i], width, color=colors[i], label=c_labels[i])
c_labels = ['1', '2', '3', '4', '5', '6', '7', '8', 'Unknown']
x_labels = ['1)', '2)', '3)', '4)', '5)']
sizes = np.array([[2, 8, 2, 1, 0, 0, 0, 0, 1],
[2, 4, 6, 0, 0, 0, 1, 0, 1],
[2, 0, 0, 2, 5, 0, 0, 1, 3],
[1, 0, 0, 3, 2, 2, 4, 0, 2],
[1, 0, 1, 0, 1, 1, 4, 3, 2]])
colors = ['royalblue', 'red', 'orange', 'green', 'purple', 'deepskyblue', 'deeppink', 'limegreen', 'firebrick']
bar_chartQ2(sizes, colors, x_labels, c_labels, 'Q2')
plt.legend(loc=(1.2, 0.2), shadow=True)
plt.xticks(ind + x/2.0*width, x_labels)
plt.tight_layout()
plt.savefig(file_name+'.pdf', format='pdf', bbox_inches='tight')
Bisher das ist das Ergebnis:
Ich denke, es ist irgendwie unlesbar.
Ich möchte Bars mit size == 0 überspringen, d. H. Leere Leerzeichen zwischen Balken des gleichen Elements verhindert.
Nur eine Anmerkung aber: was ist mit Menschen, die farbenblind sind? In diesem Fall kann die Position ihnen helfen, das Ergebnis zu verstehen. –
Ja, du hast Recht, @ WillemVanOnsem. Aber wie ist es jetzt, denken Sie nicht daran, die Cluster zu identifizieren? Ich meine, es gab 5 Fragen mit jeweils 8 Optionen. Ohne die Farben kann ich nicht identifizieren, welche Balken jeder Frage entsprechen. Vielleicht wäre ein Muster statt Farbe besser. Oder ein anderer Ansatz. – pceccon
Ich empfehle, dass Sie jeden Cluster auf seinen eigenen Achsen plotten und dann die Position jedes Balkens beschriften. –