2017-01-04 5 views
0

У меня есть эта ДФ:Участок dataframe колонны друг против друга

 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 не имеет значения даты СЕТ, но номер строки

+0

[Это] (https://plot.ly/python/multiple-axes/#multiple-yaxes), несомненно, поможет вам в создании нескольких Y-оси. –

+0

Хорошо спасибо – joasa

+0

см. Несколько частей оси y на странице ссылок. –

ответ

4

Насколько я помню plot использует индекс для значений х. Try:

df.set_index('CET').plot() 

И вы должны убедиться, что все, что вам столбцы имеют числовой тип данных.

Edit:

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) 
+0

Как я могу показать все значения столбца «CET» по оси x? Он показывает только несколько символов, но не все из них – joasa

+0

А также, поскольку все мои столбцы должны быть числовыми, как я могу преобразовать тип «объект» в «int64»? Я попробовал 'df = df.convert_objects (convert_numeric = True)', но столбец «События» остается как объект – joasa

+0

В ваших примерах нет «событий». Но я обновил свой ответ. –

Смежные вопросы