首先
freq_series.plot返回一个轴而不是一个数字,以便使我的回答更加清楚。我已经更改了给定的代码以使其引用,
ax而不是
fig与其他代码示例更加一致。
你可以从该
ax.patches成员处获得该图中所产生的钢筋的列表。然后,你可以使用此matplotlib库示例中演示的技术来使用ax.text方法添加标签。
import numpy as npimport pandas as pdimport matplotlib.pyplot as plt# Bring some raw data.frequencies = [6, 16, 75, 160, 244, 260, 145, 73, 16, 4, 1]# In my original pre I create a series and run on that, # so for consistency I create a series from the list.freq_series = pd.Series.from_array(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))ax = freq_series.plot(kind='bar')ax.set_title('Amount Frequency')ax.set_xlabel('Amount ($)')ax.set_ylabel('Frequency')ax.set_xticklabels(x_labels)rects = ax.patches# Make some labels.labels = ["label%d" % i for i in xrange(len(rects))]for rect, label in zip(rects, labels): height = rect.get_height() ax.text(rect.get_x() + rect.get_width() / 2, height + 5, label, ha='center', va='bottom')


