Визуализация данных - какой график удобнее со временем и несколькими столбцами данных? - PullRequest
0 голосов
/ 24 октября 2018

У меня есть файл Excel, который состоит из 4 электронных таблиц для представления периода времени.в каждой электронной таблице есть данные из трех столбцов: «предмет», «мера» и «частота» (данные учитывают уровень заинтересованности студента каждые 10 лет)

EG, лист 1970-1980

          frequency   score
math         3.4        1
english      2.5       0.95
art          0.4       0.8

лист 1981-1990

          frequency   score
math         4.7       0.5
english      2.3       0.48
art          -0.4      0.13

лист 1991-2000

          frequency   score
math         4.2       0.6
english      2.1       0.77
art          -0.2      0.24

лист 2000-2010

          frequency   score
math         4.5       0.55
english      1.9       0.66
art          -0.23      0.19

Я создал точечный графикдля каждого периода времени, но я хотел бы видеть движение данных за период времени.Например, ось X представляет период времени, а ось Y представляет частоту и оценку.

есть какие-либо предложения?

1 Ответ

0 голосов
/ 24 октября 2018

Прежде всего, я воспроизведу таблицы, которые у вас здесь есть, как панды Датафреймы и в течение трех десятилетий:

data_80s = {'math':[ 3.4, 1], 'english':[2.5, 0.95],'art':[0.4, 0.8]}
df_80s = pd.DataFrame.from_dict(data_80s, orient = 'index', columns=['frequency', 
'score'])
df_80s['decade'] = pd.to_datetime(1990, format='%Y')
df_80s['index'] = df_80s.index

data_90s = {'math':[ 4.7, 0.5], 'english':[2.3, 0.48],'art':[-0.4, 0.13]}
df_90s = pd.DataFrame.from_dict(data_90s, orient = 'index', columns=['frequency', 
'score'])
df_90s['decade'] = pd.to_datetime(1990, format='%Y')
df_90s['index'] = df_90s.index
data_20s = {'math':[ 4.2, 0.6], 'english':[2.1, 0.77],'art':[-0.2, 0.24]}
df_20s = pd.DataFrame.from_dict(data_20s, orient = 'index', columns=['frequency', 
'score'])
 df_20s['decade'] = pd.to_datetime(2000, format='%Y')
 df_20s['index'] = df_20s.index

Возможно, вам просто нужно будет преобразовать ваш лист исключений в панды Данных.Только не забудьте добавить дополнительный столбец index и decade.

. Затем вы можете объединить кадры данных:

frames = [df_90s, df_20s] result = df_80s.append(frames)

И, наконец, построить любой графикВы хотите:

f, (ax1, ax2) = plt.subplots(2, figsize=(15,10))
 sns.lineplot(x='decade', y='score',  hue = 'index', data=result, ax=ax1)
 sns.lineplot(x='decade', y='frequency', hue = 'index', data=result, ax=ax2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...