首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带权变量的ggplot2 geom_mosaic

带权变量的ggplot2 geom_mosaic
EN

Stack Overflow用户
提问于 2017-09-09 18:09:12
回答 1查看 1.5K关注 0票数 0

我正试图用ggplot2制作一个马赛克图。我正在使用来自bladdercancer包的HSAUR3数据。我想要展示肿瘤大小和数量之间的关系,但我不知道如何衡量它的重量。我知道,使用tumorsizes<=3cm的示例中的数字与tumorsize>3cm中的数字不一样。我如何把它融入我的马赛克情节?

以下是我在没有加权的情况下所做的。

代码语言:javascript
复制
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"))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-20 11:55:38

这可能是晚了,但我提供了我的建议,因为我试图做类似的事情。以下是两项建议:

代码语言:javascript
复制
library(tidyverse)

第一种选择:

代码语言:javascript
复制
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部分。

第二种选择:

代码语言:javascript
复制
ggplot(bladdercancer) +
  geom_bar(aes(x = number, fill = tumorsize), position = "dodge")

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46133677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档