我正试图用ggplot2制作一个马赛克图。我正在使用来自bladdercancer包的HSAUR3数据。我想要展示肿瘤大小和数量之间的关系,但我不知道如何衡量它的重量。我知道,使用tumorsizes<=3cm的示例中的数字与tumorsize>3cm中的数字不一样。我如何把它融入我的马赛克情节?
以下是我在没有加权的情况下所做的。
library("ggplot2")
library("ggmosaic")
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"))发布于 2017-12-20 11:55:38
这可能是晚了,但我提供了我的建议,因为我试图做类似的事情。以下是两项建议:
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))

每列中的类别代表每个肿瘤大小的不同计数,例如,数字1在<=3cm中出现15次,对于>3cm出现5次。然而,我无法在频率相同的地方进行分区,在这个例子中是第3和第4部分。
第二种选择:
ggplot(bladdercancer) +
geom_bar(aes(x = number, fill = tumorsize), position = "dodge")

https://stackoverflow.com/questions/46133677
复制相似问题