Построить столбцы данных кадра друг против друга
У меня есть этот DF:
CET MaxTemp MeanTemp MinTemp MaxHumidity MeanHumidity MinHumidity revenue events
0 2016-11-17 11 9 7 100 85 63 385.943800 rain
1 2016-11-18 9 6 3 93 83 66 1074.160340 storm
2 2016-11-19 8 6 4 93 87 76 2980.857860
3 2016-11-20 10 7 4 93 84 81 1919.723960 rain-thunderstorm
4 2016-11-21 14 10 7 100 89 77 884.279340
5 2016-11-22 13 10 7 93 79 63 869.071070
6 2016-11-23 11 8 5 100 91 82 760.289260 fog-rain
7 2016-11-24 9 7 4 93 80 66 2481.689270
8 2016-11-25 7 4 1 87 74 57 2745.990070
9 2016-11-26 7 3 -1 100 88 61 2273.413250 rain
10 2016-11-27 10 7 4 100 81 66 2630.414900 fog
Куда:
CET object
Mean TemperatureC int64
Mean Humidity int64
Events object
revenue object
dtype: object
Я хочу построить все столбцы друг против друга, чтобы увидеть, как они меняются со временем. Итак, ось X будет столбцом CET
и ось Y будет иметь остальные столбцы. Как я могу это сделать? Я использовал:
plt.figure();
df.plot(kind='line')
plt.xticks(rotation='vertical')
plt.yticks()
pylab.show()
но я вижу только среднюю температуру и среднюю влажность. Более того, ось X - это не значения даты CET, а номер строки
4 ответа
Насколько я помню plot
uses the index for the x values. Пытаться:
df.set_index('CET').plot()
And you should make sure that all you columns have a numeric datatype.
Редактировать:
df = df.set_index('CET')
num_cols = ['MaxTemp',
'MeanTemp',
'MinTemp',
'MaxHumidity',
'MeanHumidity',
'MinHumidity',
'revenue']
df[num_cols] = df[num_cols].astype(float)
df[num_cols].plot()
plt.xticks(range(len(df.index)), df.index)
Подпрограммы построения pandas, такие как plot.line или plot.scatter, могут принимать имена столбцов для
x
а также
y
аргументы:
Например
>>> lines = df.plot.line(x='pig', y='horse')
>>> ax1 = df.plot.scatter(x='length',
... y='width',
... c='DarkBlue')
Чтобы построить столбцы друг против друга, вы можете использовать парный график