我陷入了一些感觉应该相对容易的事情上。我在下面带来的代码是基于我正在处理的一个更大项目的示例。我认为没有理由发布所有详细信息,因此请按原样接受我带来的数据结构。
基本上,我正在创建一个条形图,我可以弄清楚如何在条形图上添加值标签(在条形图的中心,或者就在它的上方)。一直在网上查看示例,但没有成功实现我自己的代码。我相信解决方案是使用“文本”或“注释”,但我:a)不知道使用哪个(一般来说,还没有弄清楚何时使用哪个)。 b) 看不到任何一个来呈现价值标签。感谢您的帮助,我的代码如下。提前致谢!
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
pd.set_option('display.mpl_style', 'default')
%matplotlib inline
# Bring some raw data.
frequencies = [6, 16, 75, 160, 244, 260, 145, 73, 16, 4, 1]
# In my original code I create a series and run on that,
# so for consistency I create a series from the list.
freq_series = pd.Series(frequencies)
x_labels = [108300.0, 110540.0, 112780.0, 115020.0, 117260.0, 119500.0,
121740.0, 123980.0, 126220.0, 128460.0, 130700.0]
# Plot the figure.
plt.figure(figsize=(12, 8))
fig = freq_series.plot(kind='bar')
fig.set_title('Amount Frequency')
fig.set_xlabel('Amount ($)')
fig.set_ylabel('Frequency')
fig.set_xticklabels(x_labels)
原文由 Optimesh 发布,翻译遵循 CC BY-SA 4.0 许可协议
首先
freq_series.plot
返回一个轴 而不是 一个数字所以为了让我的回答更清楚一点我已经更改了你给定的代码以将其称为ax
而不是fig
与其他代码示例更加一致。您可以从
ax.patches
成员获取图中生成的条形列表。然后,您可以使用 此matplotlib
图库示例 中演示的技术,使用ax.text
方法添加标签。这会生成一个带标签的图,如下所示: