【问题标题】:Matplotlib, settng in-plot text with plt.text() with pandas time series dataMatplotlib,使用 plt.text() 和 pandas 时间序列数据设置绘图文本
【发布时间】:2015-12-20 17:48:57
【问题描述】:

Matplotlib 允许使用matplotlib.axes.Axes.text() 在绘图中设置文本。

我正在绘制 Pandas 系列数据,所以 x 轴是日期。

Datetime
2014-11-08    345
2014-11-09    678 
2014-11-10    987
2014-11-11    258
Freq: W-SUN, dtype: int64

如果我想添加文本添加位置(x,y) = (2014-11-08, 345),我该怎么做? 2014-11-08 实际上不是 x 轴上的 x 值。我怎样才能找到这个位置?

【问题讨论】:

    标签: python matplotlib plot


    【解决方案1】:

    有多种选择。您可以使用来自 Python 标准库的 datetime 或 pandas 的 Timestamp 对象的 Series 对象的索引、datedatetime 对象的值来设置标签在时间上的 x 轴位置-系列情节。

    import pandas as pd
    from pandas import Timestamp
    import datetime as dt
    import matplotlib.pyplot as plt
    
    s = pd.Series({Timestamp('2014-11-08 00:00:00'): 345,
        Timestamp('2014-11-09 00:00:00'): 678,
        Timestamp('2014-11-10 00:00:00'): 987,
        Timestamp('2014-11-11 00:00:00'): 258})
    
    fig = plt.figure()
    ax = fig.gca()
    s.plot(ax=ax)
    
    i = 0
    ax.text(s.index[i], s.iloc[i], "Hello")
    ax.text(dt.date(2014, 11, 9), 500, "World")
    ax.text(Timestamp("2014-11-10"), 777, "!!!")
    
    plt.show()
    

    【讨论】:

      猜你喜欢
      • 2016-02-22
      • 1970-01-01
      • 1970-01-01
      • 2017-10-08
      • 2014-04-22
      • 2018-02-27
      • 1970-01-01
      • 2014-12-01
      • 1970-01-01
      相关资源
      最近更新 更多