チャートに実際の値を表示することについて質問があります。印刷されたグラフがあり、積み上げられた各バーの値を表示する必要があります。これらの値を表示するにはどうすればよいですか?
関数を試しax.text
ましたが、望ましい結果が得られません (写真を参照)。グラフは 1 に正規化されているため、積み上げられた各バーの実際の値を表示する必要があります (上部は合計数であり、各バーに分割する必要があります。最初のバーには 1 つの数字 7、2 番目のバーには 3 つの数字が必要です。 41 は、各カラー バーのサイズで分割されます)。これを行うことは可能ですか?
私のコードでは、複数の積み重ねられたバーをどのように思いつくか:
def autolabel(rects):
# attach some text labels
for rect in rects:
height = rect.get_height()
ax.text(rect.get_x()+rect.get_width()/2., 1.05*height, '%d'%int(height),
ha='center', va='bottom')
p = [] # list of bar properties
def create_subplot(matrix, colors, axis):
bar_renderers = []
ind = np.arange(matrix.shape[1])
bottoms = np.cumsum(np.vstack((np.zeros(matrix.shape[1]), matrix)), axis=0)[:-1]
for i, row in enumerate(matrix):
print bottoms[i]
r = axis.bar(ind, row, width=0.5, color=colors[i], bottom=bottoms[i])
bar_renderers.append(r)
autolabel(r)
#axis.set_title(title,fontsize=28)
return bar_renderers
p.extend(create_subplot(nauja_matrica,spalvos, ax))