首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Matplotlib:使用累积直方图在条形图上添加值

Matplotlib:使用累积直方图在条形图上添加值
EN

Stack Overflow用户
提问于 2021-03-16 08:27:08
回答 1查看 49关注 0票数 0

我用matplotlib创建了下面的直方图。如何在条形图上添加百分比,而不必使用百分比本身创建新的数据帧?

代码语言:javascript
运行
AI代码解释
复制
x = df1 
fig, ax = plt.subplots()

plt.hist(x['tx'],range=[0,11],cumulative=True, density=True, bins=np.arange(11)+ 0.7,color='dimgray',edgecolor='white',width=0.6)
plt.xticks(range(11))
plt.yticks(np.arange(0, 1.1, step=0.1))

ax.set_axisbelow(True)
ax.yaxis.set_major_formatter(ticker.PercentFormatter(xmax=1))


ax.grid(linestyle='-', linewidth='0.4', color='grey')

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-16 08:40:21

可以使用函数plt.text(x,y,s)在绘图上打印文本,其中x和y是文本字符串s的位置。

https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.text.html

下面是它在您的示例中的工作方式:

代码语言:javascript
运行
AI代码解释
复制
array = np.random.randint(0, 11, 50)
values, x_pos, _ = plt.hist(array,range=[0,11],cumulative=True, density=True, bins=np.arange(11)+ 0.7,color='dimgray',edgecolor='white',width=0.6)
plt.xticks(range(11))
plt.yticks(np.arange(0, 1.1, step=0.1))

[plt.text(x_, val, "{0:.1f} %".format(val *100)) for x_, val in zip(x_pos, values)]

对于文本格式和选择要显示的小数位数,或者如果要转换为百分比,您可以获取有关https://www.geeksforgeeks.org/string-formatting-in-python/的详细信息

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66651484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档