首页 >后端开发 >Python教程 >如何在 Matplotlib 中的水平条上显示数据值?

如何在 Matplotlib 中的水平条上显示数据值?

Linda Hamilton
Linda Hamilton原创
2024-11-28 13:11:11543浏览

How to Display Data Values on Horizontal Bars in Matplotlib?

如何利用文本在水平条上显示值

条形图广泛用于可视化数据表示,但有时它变得至关重要在每个条形上显示精确值以增强数据解释。虽然 matplotlib 没有为此提供开箱即用的解决方案,但对代码进行简单修改即可启用此功能。

要在水平条上合并值,您可以使用 ax. text() 方法。通过迭代数据值 (y),您可以向每个条添加文本,指定 x 位置 (v 3) 和 y 位置 (i)。以下是更新后的代码:

import os
import numpy as np
import matplotlib.pyplot as plt

x = [u'INFO', u'CUISINE', u'TYPE_OF_PLACE', u'DRINK', u'PLACE', u'MEAL_TIME', u'DISH', u'NEIGHBOURHOOD']
y = [160, 167, 137, 18, 120, 36, 155, 130]

fig, ax = plt.subplots()    
width = 0.75 # the width of the bars 
ind = np.arange(len(y))  # the x locations for the groups
ax.barh(ind, y, width, color="blue")
ax.set_yticks(ind+width/2)
ax.set_yticklabels(x, minor=False)
plt.title('title')
plt.xlabel('x')
plt.ylabel('y')      

# Add text to display values on bars
for i, v in enumerate(y):
    ax.text(v + 3, i, str(v), color='blue', fontweight='bold', verticalalignment='center')

#plt.show()
plt.savefig(os.path.join('test.png'), dpi=300, format='png', bbox_inches='tight') # use format='svg' or 'pdf' for vectorial pictures

此修改会将值稍微放置在每个条形的右侧,从而提供数据的清晰视觉表示。

以上是如何在 Matplotlib 中的水平条上显示数据值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn