添加文本注释以从熊猫数据框中绘图

Roh*_*hit 1 python annotations matplotlib python-3.x pandas

我的代码:

import matplotlib.pyplot as plt
import pandas as pd
import os, glob

path = r'C:/Users/New folder'
all_files = glob.glob(os.path.join(path, "*.txt"))
df = pd.DataFrame()
for file_ in all_files:
    file_df = pd.read_csv(file_,sep=',', parse_dates=[0], infer_datetime_format=True,header=None, usecols=[0,1,2,3,4,5,6], names=['Date','Time','open', 'high', 'low', 'close','volume','tradingsymbol'])

df = df[['Date','Time','close','volume','tradingsymbol']]
df["Time"] = pd.to_datetime(df['Time'])
df.set_index('Time', inplace=True)
print(df)

fig, axes = plt.subplots(nrows=2, ncols=1)
################### Volume ###########################
df.groupby('tradingsymbol')['volume'].plot(legend=True, rot=0, grid=True, ax=axes[0])
################### PRICE ###########################
df.groupby('tradingsymbol')['close'].plot(legend=True, rot=0, grid=True, ax=axes[1])

plt.show()
Run Code Online (Sandbox Code Playgroud)

我的当前输出是这样的: 输出

我需要向 matplotlib 图中添加文本注释。我想要的输出类似于下图想要的

Ral*_*lph 5

如果不访问您的数据集或一个更简单的示例,就很难回答这个问题。不过,我会努力的。

让我们首先设置一个可能与您的数据相似或可能类似于您的数据的数据框:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

df = pd.DataFrame(np.random.randint(low=0, high=10, size=(5, 3)),
                    columns=['a', 'b', 'c'])
Run Code Online (Sandbox Code Playgroud)

使用数据集,我们现在将继续绘制它

fig, ax = plt.subplots(1, 1)
df.plot(legend=True, ax=ax)
Run Code Online (Sandbox Code Playgroud)

最后,我们将遍历列并将每个数据点注释为

for col in df.columns:
    for id, val in enumerate(df[col]):
        ax.text(id, val, str(val))
Run Code Online (Sandbox Code Playgroud)

这给了我以下情节的情节,类似于您想要的人物。 在此处输入图片说明