如何用条形图绘制 cumsum 百分比折线图?

How to draw a cumsum percent line-chart with a bar-chart?

我想画条形图,想用cumsum百分比求和,但我不知道怎么做。

我的示例代码

我要下面的情节

有人知道怎么做吗?

如果你把它们画在同一个轴上,你可以这样做:

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111)


x = ['a', 'b', 'c']
y = np.array([115, 400, 200])
plt.bar(x, y)
ratio = y/y.sum()*100
cumsumRatio = ratio.cumsum()
ax.plot(x, cumsumRatio, color='orange')
for xy in zip(x, cumsumRatio):
    ax.annotate(f'({xy[1]:.2f}%)', xy=xy, textcoords='data')

或在单独的 y 轴上:

import numpy as np
import matplotlib.pyplot as plt

fig, ax  = plt.subplots()
ax2 = ax.twinx()


x = ['a', 'b', 'c']
y = np.array([115, 400, 200])
ax.bar(x, y)
ratio = y/y.sum()*100
cumsumRatio = ratio.cumsum()
ax2.plot(x, cumsumRatio, color='orange')
for xy in zip(x, cumsumRatio):
    ax2.annotate(f'({xy[1]:.2f}%)', xy=xy, textcoords='data')