带权重变量的ggplot2 geom_mosaic

问题描述 投票:0回答:1

我正在尝试用ggplot2制作马赛克图。我正在使用HSAUR3包中的bladdercancer数据。我希望显示肿瘤与数量之间的关系,但我不确定如何加重它。我知道使用tumorsizes<=3cm的样本中的数字与使用tumorsize>3cm的数字不同。如何将其纳入我的马赛克图?这是我在没有加权的情况下做的。

ggplot(data = bladdercancer, family=poisson()) +
   geom_mosaic(aes(weight= 1 , x = product(tumorsize, number), 
   fill=factor(tumorsize)), na.rm=TRUE) +
   labs(x="Number of tumors", title='Number of tumors vs Tumorsize') + 
   guides(fill=guide_legend(title = "Tumor Size"))
r ggplot2 weight
1个回答
0
投票

这可能是迟到但我提出我的建议,因为我试图做类似的事情。以下是两个建议:

library(tidyverse)

第一种选择:

bladdercancer %>%
group_by(tumorsize, number) %>%
# get frequencies/counts for each tumor size and for each number
summarise(n.cases = n()) %>%
ggplot() +
geom_mosaic(aes(weight = n.cases, x = product(number), 
              fill = factor(n.cases)), offset = 0) +
guides(fill=guide_legend(title = "Tumor Size")) +
labs(x="Number of tumors", title='Number of tumors vs Tumorsize') + 
# remove background colour
theme_bw() +
theme(panel.grid.major = element_blank(),
    # remove major and minor grids
    panel.grid.minor = element_blank(),
    # push title to the middle
    plot.title = element_text(size = 10, hjust = .5))

其中每列中的类别代表每种肿瘤大小的不同计数,例如对于<=3cm,数字1出现15次,对于>3cm出现5次。然而,我无法在频率相同的地方进行分区,在本例中为3号和4号。因此我选择2

第二种选择:

ggplot(bladdercancer) +
  geom_bar(aes(x = number, fill = tumorsize), position = "dodge")

© www.soinside.com 2019 - 2024. All rights reserved.