首页 > 解决方案 > 棒棒糖图的分面包装

问题描述

我正在建立一个已回答的先前问题,但现在我正在努力将其应用于我的问题。我有以下数据:

cluster <- c("Joe", "Sam", "Bob")
var1 <- c(22.9, 0, 0)
var2 <- c(57.8, 0, -25.1)
var3 <- c(45.9, -25.5, 63.9)

data <- as.data.frame(
  cbind (cluster, var1, var2, var3)
)

我想制作一个棒棒糖图的分面包装,其中有三个棒棒糖图,如本页所示,每个方面是乔、山姆和鲍勃;变量名 var1、var2 和 var3 位于左侧,每个棒棒糖都是将每个键值对 (Joe-var3 = 45.9) 的值连接到中心的零的段。

图片显示了我正在尝试调整的示例。 在此处输入图像描述

标签: rggplot2dplyrtidyversetidy

解决方案


我认为以下代码可以满足您的大部分要求。您可以调整详细设置(颜色、背景......)

library(tibble)
library(tidyr)
library(ggplot2)


data1<-
    tibble(
        cluster=c("Joe", "Sam", "Bob"),
        var1=c(22.9, 0, 0),
        var2=c(57.8, 0, -25.1),
        var3=c(45.9, -25.5, 63.9)
    ) %>% 
    pivot_longer(
        cols=c("var1","var2","var3"),
        names_to="varname",
        values_to="varvalue"
    )


ggplot(data1) +
    geom_col(aes(y=varname,x=varvalue),fill='seagreen')+
    coord_cartesian(xlim=c(-100,100))+
    facet_wrap(~ cluster)

推荐阅读