添加文本注释从熊猫数据帧绘制

问题描述 投票:0回答:1

我的代码:

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()

我的电流输出是这样的:Output

我需要添加文本注释matplotlib阴谋。我期望的输出类似于下面imageDesired

python python-3.x pandas matplotlib annotations
1个回答
1
投票

这是很难回答这个问题,无法访问您的数据集,或一个简单的例子。不过,我会尽我所能。

首先,让我们建立这可能会或可能类似于您的数据的数据帧:

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'])

随着数据集我们现在将着手绘制它

fig, ax = plt.subplots(1, 1)
df.plot(legend=True, ax=ax)

最后,我们将在列循环和注释每个数据点为

for col in df.columns:
    for id, val in enumerate(df[col]):
        ax.text(id, val, str(val))

这给了我下面的情节的情节,这类似于你想要的数字。 enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.