Fir*_*leh 5 python matplotlib percentage pandas
我已经为下面的数据绘制了一个条形图
Total Monthly Actual Hours Total Monthly Work Hours
Activity Month
Apr-19 35381.25 42592
May-19 31722.50 44528
Jun-19 27708.50 38720
Jul-19 34283.50 44528
Aug-19 21359.90 42592
Run Code Online (Sandbox Code Playgroud)
.
我的代码到目前为止
display(dfWorkActual)
dfWorkActual.plot(kind='bar')
plt.ylabel('Work Hours')
plt.xlabel('Month')
plt.title("Total Monthly Work Hours & Total Actual Work Hours vs Month")
Run Code Online (Sandbox Code Playgroud)
现在我想添加每月总小时数的总实际小时数的百分比。
例如:
请指教
要注释条形图,您可以参考此处 matplotlib 文档中的示例。
fig = plt.figure(figsize=(15,10))
ax = plt.gca()
width = 0.35
rects1 = ax.bar(df.index-width/2, df.A, width)
rects2 = ax.bar(df.index+width/2, df.B, width)
for r1, r2 in zip(rects1, rects2):
h1 = r1.get_height()
h2 = r2.get_height()
percent = int(h1 * 100 / h2)
ax.annotate('{}%'.format(percent),
xy=(r1.get_x() + r1.get_width() / 2, h1),
xytext=(0, 3), # 3 points vertical offset
textcoords="offset points",
ha='center', va='bottom')
ax.annotate('100%',
xy=(r2.get_x() + r2.get_width() / 2, h2),
xytext=(0, 3), # 3 points vertical offset
textcoords="offset points",
ha='center', va='bottom')
plt.show()
Run Code Online (Sandbox Code Playgroud)
和
fig = plt.figure(figsize=(15,10))
ax = plt.gca()
width = 0.35
rects1 = ax.bar(df.index, df.A, width)
rects2 = ax.bar(df.index, df.B, width, bottom=df.A)
for r1, r2 in zip(rects1, rects2):
h1 = r1.get_height()
h2 = r2.get_height()
percent = int(h1 * 100 / h2)
ax.annotate('{}%'.format(percent),
xy=(r1.get_x() + r1.get_width() / 2, h1/2),
xytext=(0, 0),
textcoords="offset points",
ha='center', va='bottom')
ax.annotate('100%',
xy=(r2.get_x() + r2.get_width() / 2, h1+h2/2),
xytext=(0, 0),
textcoords="offset points",
ha='center', va='bottom')
plt.show()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4245 次 |
| 最近记录: |