【问题标题】:Making a graph of presence/absence制作存在/不存在图表
【发布时间】:2021-12-07 17:37:51
【问题描述】:

我想对一个如下所示的数据集进行图形表示,其中 1 和 os 表示存在/不存在:

f_list = ['feature_5','feature_3','feature_1','feature_4','feature_2','feature_6']
v = [[0,0,0,1,1,1],[0,1,1,1,1,1],[0,0,0,0,1,1],[0,0,1,1,1,1],[0,0,0,0,0,1],[1,1,1,1,1,1]]
df = pd.DataFrame(data=v, columns=f_list, index=range(6))

我能想到的最好的是一个条形图,其中“x”中的“特征”和频率总和“y”:

new_df = pd.DataFrame(index=range(6), columns=['Feature','sum'])
i=0
for f in f_list:
    new_df.loc[i,'Feature'] = f
    new_df.loc[i,'sum'] = df[f].sum()
    i += 1

import seaborn as sns
ax = sns.barplot(x="Feature", y="sum", data=new_df.sort_values(by='sum', axis=0, ascending=False))

但我希望能够将特征组合可视化。

我想做一些看起来像热图或混淆矩阵的东西,但这些框仅代表存在/不存在。 喜欢:


n_something   /feature_6/feature_2 / feature_4 / feature_1 / feature_3 / feature_5

  4               x                         
  2               x          x                      
  0               x          x         x                                
  3               x          x         x           x                    
  1               x          x         x           x         x          
  5               x          x         x           x         x          x

有什么想法吗?

【问题讨论】:

    标签: python pandas matplotlib seaborn


    【解决方案1】:

    Seaborn heatmap 会起作用(最简单的解决方案)

    例如

    import seaborn as sns
    sns.heatmap(df, vmin=0, vmax=1, cbar=False, cmap="winter")
    

    玩转cmap 以获得您喜欢的颜色。

    或者,使用pandas dataframe styling

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-03
      相关资源
      最近更新 更多