python - Matplotlib,使用带有 pandas 时间序列数据的 plt.text() 设置绘图内文本

标签 python matplotlib plot

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 值。我怎样才能找到这个位置?

最佳答案

有几个选项。您可以使用来自 Series 对象的索引、date 或来自 Python 标准库的 datetime 或 pandas 的 datetime 对象的值Timestamp 对象,用于设置时间序列图上标签的 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()

The result

关于python - Matplotlib,使用带有 pandas 时间序列数据的 plt.text() 设置绘图内文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34383945/

相关文章:

python - 限时终止Python进程

python - 使用 matplotlib 将标签居中放置在圆圈内

javascript - 使用 D3.js 图表表示 Python 生成的数据

Python:在 matplot 散点图的 x 轴上绘制字符串会产生 "could not convert string to float"

来自标准输入的实时绘图

python - 如何计算两个 Pandas 列之间的时间差

Python 3.5 Pandas 和 MongoDB -json_normalize : raise TypeError ("data argument can' t be an iterator")

python - Flask-MySQLdb 自动提交?

python - 如何使用 Python 中的 numpy 和 matplotlib 在 Python 中的曲线内部绘制切线圆?

dataframe - 使用 Julia StatsPlots 绘制数据帧