【问题标题】:Visualizing multiple dummy variables over time随着时间的推移可视化多个虚拟变量
【发布时间】:2017-06-29 21:09:11
【问题描述】:

我有一个包含虚拟变量的数据框,用于每日天气类型观察。

         date  high_wind  thunder  snow  smoke
0  2050-10-23        1.0      NaN   NaN    NaN
1  2050-10-24        1.0      1.0   NaN    NaN
2  2050-10-25        NaN      NaN   NaN    NaN
3  2050-10-26        NaN      NaN   NaN    1.0
4  2050-10-27        NaN      NaN   NaN    1.0
5  2050-10-28        NaN      NaN   NaN    1.0
6  2050-10-29        1.0      NaN   NaN    NaN
7  2050-10-30        NaN      1.0   NaN    NaN
8  2050-10-31        NaN      1.0   NaN    NaN
9  2050-11-01        1.0      1.0   NaN    NaN
10 2050-11-02        1.0      1.0   NaN    NaN
11 2050-11-03        1.0      1.0   NaN    NaN
12 2050-11-04        1.0      NaN   NaN    NaN
13 2050-11-05        1.0      NaN   NaN    NaN
14 2050-11-06        NaN      NaN   NaN    NaN
15 2050-11-07        NaN      1.0   NaN    NaN
16 2050-11-08        NaN      NaN   NaN    NaN
17 2050-11-09        NaN      NaN   1.0    NaN
18 2050-11-10        NaN      NaN   NaN    NaN
19 2050-11-11        NaN      NaN   1.0    NaN
20 2050-11-12        NaN      NaN   1.0    NaN
21 2050-11-13        NaN      NaN   NaN    NaN

对于那些在家一起玩的人,请复制上面的内容,然后:

import pandas as pd
df = pd.read_clipboard()    
df.date = df.date.apply(pd.to_datetime)
df.set_index('date', inplace=True)

我想用 x 轴上的日期和 y 轴上的每个天气类型类别来可视化这个数据框。到目前为止,这是我尝试过的:

import matplotlib.pyplot as plt
fig, ax = plt.subplots()
labels = df.columns.tolist()

#unsatisfying loop to give categories some y separation
for i,col in enumerate(df.columns):
    ax.scatter(x=df[col].index, y=(df[col]+i)) #add a little to each
ax.set_yticklabels(labels)
ax.set_xlim(df.index.min(), df.index.max())
fig.autofmt_xdate()

这给了我这个:

问题:

  1. 如何正确对齐 y 标签?

  2. 有没有更好的方法来构造数据以使绘图更容易?

【问题讨论】:

    标签: python pandas matplotlib


    【解决方案1】:

    这会对齐你的标签:

    ax.set_yticks(range(1, len(df.columns) + 1))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-05
      • 1970-01-01
      • 2021-01-07
      • 2022-01-09
      • 1970-01-01
      • 1970-01-01
      • 2014-02-04
      • 2018-09-10
      相关资源
      最近更新 更多