Comme il s'agit d'un seul coup dans Excel, j'ai essayé de savoir si matplotlib avait également une fonction de graphique de bande, mais il semble que ce ne soit pas le cas. Normaliser et afficher le graphique à barres empilées de sorte que la valeur totale soit 1.
import numpy as np
import matplotlib.pyplot as plt
N, K = 4, 3
data = np.random.rand(N, K)
tick_labels = ["a", "b", "c", "d"]
labels = ["x", "y", "z"]
normalized = data / data.sum(axis=1, keepdims=True)
cumulative = np.zeros(N)
tick = np.arange(N)
for k in range(K):
color = plt.cm.viridis(float(k) / K, 1)
plt.barh(tick, normalized[:, k], left=cumulative, color=color, label=labels[k])
# plt.bar(tick, normalized[:, k], bottom=cumulative, color=color, label=labels[k])
cumulative += normalized[:, k]
plt.xlim((0, 1))
# plt.ylim((0, 1))
plt.yticks(tick, tick_labels)
# plt.xticks(tick, tick_labels)
plt.legend()
plt.show()
Référence: https://de.dariah.eu/tatom/topic_model_visualization.html
Recommended Posts