如何利用文本在水平条上显示值
条形图广泛用于可视化数据表示,但有时它变得至关重要在每个条形上显示精确值以增强数据解释。虽然 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中文网其他相关文章!