首页 文章

类似热图的三个分类变量图

提问于
浏览
0

我正在处理案例形式的分类变量数据框,由三个变量(即颜色,形状和大小)及其相应的频率组成 . 数据框的一个例子是这样的:

Color    Shape     Size   Freq
1 Yellow  Square    Big    10
2 Yellow  Square    Medium  6
3 Yellow  Square    Small   3
4 Yellow  Triangle  Big     4
5 Yellow  Triangle  Medium  6
6 Yellow  Triangle  Small   8
7 Red     Square    Big     2
8 Red     Square    Medium  6
9 Red     Square    Small   5
10Red     Triangle  Big    12
.......

“颜色”变量是根据“形状”和“大小”变量测量的,每种情况都有一个频率 .

从这个数据框架中,我很难创建一个类似热图的图,其中只显示“颜色”和“形状”之间的关系,并使用具有最高频率的变量“大小”作为权重 . 有点棘手,不是吗!

例如,对于“黄色” - “方形”情况,我应该只显示“大”,因为“大”是具有最高频率的大小 . 对于每种尺寸,应该有一个伴随的颜色(即“红色”表示大,“绿色”表示中等,“橙色”表示小) . 坦率

1 回答

  • 0

    这个怎么样?

    library(dplyr)
    library(ggplot2)
    
    df_max <- df %>%
      group_by(Color, Shape) %>%
      slice(which.max(Freq))
    
    head(df_max)
    # Source: local data frame [4 x 4]
    # Groups: Color, Shape [4]
    # 
    #    Color    Shape   Size  Freq
    #    (chr)    (chr)  (chr) (int)
    # 1    Red   Square Medium     6
    # 2    Red Triangle    Big    12
    # 3 Yellow   Square    Big    10
    # 4 Yellow Triangle  Small     8
    
    ggplot(df_max, aes(x = Color, y = Shape, fill = Size)) +
      geom_tile()
    

    enter image description here

相关问题