这里有一个类似的问题(链接),只需要使用ax.text
命令,并根据每根柱子的值和编号调整x和y位置即可,例如:
import pandas as pd
df = pd.DataFrame({'value1':[10, 30, 20],'value2':[20,50,10]})
ax = df.plot.barh(stacked = True);
print(df)
for rowNum,row in df.iterrows():
xpos = 0
for val in row:
xpos += val
ax.text(xpos + 1, rowNum-0.05, str(val), color='black')
xpos = 0
display(ax)
Text
:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.text.html - duncster94