在 Python 中向条形图添加虚线

Adding dotted lines to Bar chart in Python

我在 Python 模块和代码方面需要一些帮助。

我想为以下数据创建条形图:

条形图应如下所示:

虽然绘制条形图并使用 plotly 对其进行标记很容易,但我无法在第二个条形图周围添加带有文本框和框的线条。

你能帮我解决一下吗?

您可以使用 plottext 的简单循环:

df = pd.DataFrame({'data': [100, 60]}, index=['potential', 'expected'])

ax = df.plot.bar()

texts = ['this is line A', 'this is line B']

for i, v in enumerate(df['data']):
    print(i,v)
    ax.plot([i+0.25, ax.get_xlim()[-1]], [v, v],
            ls='--', c='k')
    ax.text(ax.get_xlim()[-1]+0.1, v, texts[i])

输出:

对于矩形,您需要计算条形周围的一些宽度:

import matplotlib.patches as patches
r = patches.Rectangle((1-0.3, 0), 0.6, 60*1.05,
                      lw=3, ls='--',
                      edgecolor='#ED7D31', facecolor='none'
                     )
ax.add_patch(r)

输出:

轴外矩形的替代方法:

import matplotlib.patches as patches
r = patches.Rectangle((1-0.3, -60*0.05), 0.6, 60*1.1,
                      lw=3, ls='--',
                      edgecolor='#ED7D31', facecolor='none',
                      clip_on=False
                     )
ax.add_patch(r)

输出: