将数据标签添加到折线图

时间:2017-09-05 20:42:06

标签: python-2.7 pandas matplotlib

我想使用pandas / matplotlib在此图表的圆圈顶部添加数据标签。

enter image description here

使用pandas和' Month'从Excel文件加载数据。作为索引

#Importing the data
Path = 'xyz.xlsx'
df = pd.read_excel(Path,sheetname=0,index_col='Month')

然后我继续使用以下代码绘制数据

plt.plot(df['Sales1'],marker='o',label='Sales')
plt.show()

我已尝试过注释,但无法让它发挥作用。

我的数据框看起来像这样

           Sales1  Sales2  Sales3
Month                             
2015-08-01   24457   31895   42081
2015-09-01    6926   43584   20666
2015-10-01    4973    4845   10962
2015-11-01   21345   17909   36115
2015-12-01    8639   40668   38215
2016-01-01   48021   18145   25353
2016-02-01    6708   24651   46089
2016-03-01    8827   18617   31215
2016-04-01   49703   14205   26983
2016-05-01    3223   16658    1854
2016-06-01    6484   46503   13523
2016-07-01   41243   18876   20740
2016-08-01   21779   13362   48997
2016-09-01    9494   40242   15477
2016-10-01    1205   10291   32663
2016-11-01   42655   41375   48549
2016-12-01   24644   26002    6602
2017-01-01   33732   44292   45151
2017-02-01   47880   15503    1404
2017-03-01   32499   17755   11135
2017-04-01   42888   31527   25174
2017-05-01   34433    8292   20117
2017-06-01    9884    2359   45424
2017-07-01   35302   24177   48045

1 个答案:

答案 0 :(得分:4)

不完全确定您尝试了什么,但annotate应该有效。类似于所讨论的解决方案here应该做的事情

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame(pd.np.random.randn(5,1)*10 + 100,
                  index=pd.date_range("2015-01-01", "2015-01-05"),
                  columns=["Sales1"]).round()

fig = plt.figure()
ax = fig.add_subplot(111)
plt.plot(df['Sales1'], marker='o', label='Sales')

for i,j in df.Sales1.items():
    ax.annotate(str(j), xy=(i, j))

plt.show()

labels