Python: визуализируйте данные в виде линейного графика и группируйте по категориям

avatar
student214
1 июля 2021 в 17:41
56
1
0

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

Ниже приведен упрощенный пример данных.

data = {'Day': ['Monday', 'Tuesday', 'Wednesday', 'Monday', 'Tuesday', 'Wednesday'],
        '1pm': [2,3,4,5,5,4], 
        '2pm': [5,6,7,5,4,3], 
        '3pm': [1,3,5,7,4,2]}  

  
    Day        1pm  2pm 3pm
0   Monday     2    5   1
1   Tuesday    3    6   3
2   Wednesday  4    7   5
3   Monday     5    5   7
4   Tuesday    5    4   4
5   Wednesday  4    3   2    

Я пытаюсь установить ось x как время и ось y как значения. Тем не менее, я также хотел бы классифицировать результаты по дням недели. Например, две линии одного цвета для понедельника, две линии одного цвета для вторника и три линии одного цвета для среды (идентифицируемые по ключу). Ниже приведен пример.

example

Я боролся с этим и был бы признателен за помощь!

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

Источник

Ответы (1)

avatar
user16310106
1 июля 2021 в 20:01
1

Попробуйте эти 2 строки:

df = pd.DataFrame(data).set_index('Day').T
df.plot(color={"Monday": "red", "Tuesday": "green",'Wednesday':'blue'}).legend(df.columns.unique())

enter image description here

student214
2 июля 2021 в 09:30
0

Спасибо, это сработало! Хотя есть небольшая проблема с легендой. Мои «Дни» расположены в случайном порядке, например. Вторник, понедельник, среда и т. д. Поэтому, когда я устанавливаю легенду, цвета соответствуют порядку, в котором они представлены в моих данных, а не цветам, которые я им выделил. Есть ли у вас какие-либо советы по этому поводу?

user16310106
2 июля 2021 в 10:14
0

Я отредактировал код и изменил цвета в зависимости от порядка дней в фрейме данных.