joa*_*asa 4 python matplotlib dataframe pandas plt
我有这个 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
Run Code Online (Sandbox Code Playgroud)
在哪里:
CET object
Mean TemperatureC int64
Mean Humidity int64
Events object
revenue object
dtype: object
Run Code Online (Sandbox Code Playgroud)
我想将所有列相互绘制,以查看它们如何随时间变化。因此,x 轴将是列,CET而 y 轴将包含其余的列。我怎样才能做到这一点?我用了:
plt.figure();
df.plot(kind='line')
plt.xticks(rotation='vertical')
plt.yticks()
pylab.show()
Run Code Online (Sandbox Code Playgroud)
但我只能看到平均温度和平均湿度。而且,x 轴不是 CET 日期值,而是行号
据我记得plot使用 x 值的索引。尝试:
df.set_index('CET').plot()
Run Code Online (Sandbox Code Playgroud)
并且您应该确保所有列都具有数字数据类型。
编辑:
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)
Run Code Online (Sandbox Code Playgroud)