Как добавить значения / метки для каждого маркера на линейном графике в Python Seaborn? - PullRequest
0 голосов
/ 12 июля 2020

У меня фрейм данных состоит из диапазона времени, запасов и количества текста в виде столбцов. Фрейм данных выглядит следующим образом введите описание изображения здесь

Теперь я хочу указать значение для каждого маркера на графике, как я могу это сделать?

Большое спасибо

1 Ответ

1 голос
/ 12 июля 2020

L oop через количество данных с ax.text. Я создаю это только с предоставленными мне данными, поэтому я опускаю часть вашей обработки.

import pandas as pd
import numpy as np
import io

data = '''
 Time Stock Text
0 "00:00 - 01:00"  BBNI 371
1 "00:00 - 01:00"  BBRI 675
2 "00:00 - 01:00"  BBTN 136
3 "00:00 - 01:00"  BMRI 860
4 "01:00 - 02:00"  BBNI 936
5 "01:00 - 02:00"  BBRI 1325
6 "01:00 - 02:00"  BBTN 316
7 "01:00 - 02:00"  BMRI 1630
'''

df = pd.read_csv(io.StringIO(data), sep='\s+')
import seaborn as sn
import matplotlib.pyplot as plt
# df=tweetdatacom.groupby(["Time","Stock"])[["Text"]].count().reset_index()

plt.figure(figsize=(10,5))

palette = ["green","orange","red","blue"]
line=sn.lineplot(x="Time", y="Text",hue="Stock",palette=palette, marker="o", data=df)

plt.xticks(size=5,rotation=45, horizontalalignment='right',fontweight='light',fontsize='large')
plt.xlabel('Time Interval',size=12)
plt.ylabel('Total Tweets',size=12)

for item, color in zip(df.groupby('Stock'),palette):
    for x,y,m in item[1][['Time','Text','Text']].values:
#         print(x,y,m)
        plt.text(x,y,m,color=color)

введите описание изображения здесь

...