在 Python 中向条形图添加虚线
Adding dotted lines to Bar chart in Python
我在 Python 模块和代码方面需要一些帮助。
我想为以下数据创建条形图:
条形图应如下所示:
虽然绘制条形图并使用 plotly 对其进行标记很容易,但我无法在第二个条形图周围添加带有文本框和框的线条。
你能帮我解决一下吗?
您可以使用 plot
和 text
的简单循环:
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)
输出:
我在 Python 模块和代码方面需要一些帮助。
我想为以下数据创建条形图:
条形图应如下所示:
虽然绘制条形图并使用 plotly 对其进行标记很容易,但我无法在第二个条形图周围添加带有文本框和框的线条。
你能帮我解决一下吗?
您可以使用 plot
和 text
的简单循环:
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)
输出: