Как дать различные названия участкам matplotlib при анализе из csv?

#python #pandas #numpy #csv #matplotlib

Вопрос:

Я написал код python ниже, чтобы прочитать CSV и создать несколько графиков одновременно. Однако я не могу понять, как дать matplotlib значение местоположения из csv, который я читаю, поскольку я хотел бы, чтобы каждый участок был помечен значением местоположения, по которому я агрегирую. Пожалуйста, ознакомьтесь с кодом и скриншотом ниже.

 import pandas as pd
import datetime
import csv
import matplotlib.pyplot as plt
from google.colab import files
import matplotlib.pyplot as plt
import numpy as np

myfile = files.upload()
df = pd.read_csv('Electricity.csv')
df2 = df.groupby(['Location'], as_index=False)
print(df2)
df2.plot(x='Period', y = 'score', ylim=(0,11))#IDK about ylim being necessary 
plt.title('Location', color='black')
plt._show()
 

Участки

Ответ №1:

Сделайте перерисовку осей df2.plot , и, поскольку вы группируетесь по Location , у вас будет что-то похожее на:

    Location                                 NaN
0 Location1  AxesSubplot(0.125,0.11;0.775x0.77)
1 Location2  AxesSubplot(0.125,0.11;0.775x0.77)
2 Location3  AxesSubplot(0.125,0.11;0.775x0.77)
 

Используйте apply функцию с axis=1 , чтобы получить текущую ось и местоположение. С помощью объекта оси set_title используйте значение Location для каждого участка.

 ...
df2.apply(print)
ax = df2.plot(x='Period', y='score', ylim=(0, 11))

ax.apply(lambda x: x[1].set_title(x['Location']), axis=1)

plt.show()