我有以下数据集:
Category <- c("Bankpass", "Bankpass", "Bankpass", "Moving", "Moving")
Subcategory <- c("Stolen", "Lost", "Login", "Address", "New contract")
Weight <- c(10,20,13,40,20)
Duration <- as.character(c(0.2,0.4,0.5,0.44,0.66))
df <- data.frame(Category, Subcategory, Weight, Duration)
我用它来创建以下图:
#install.packages("ggmosaic")
ggplot(data = df) +
geom_mosaic(aes(weight = Weight, x = product(Category), fill=Duration),
na.rm=TRUE) + theme(axis.text.x=element_text(angle=-25, hjust= .1))
然而,这是有效的,我看到酒吧里的小片片没有意义。
关于如何摆脱它们的任何想法?
答案 0 :(得分:2)
在geom_mosaic
内添加offset = 0
。
ggplot(data = df) +
geom_mosaic(aes(weight = Weight, x = product(Category), fill=Duration),
offset = 0, na.rm=TRUE) +
theme(axis.text.x=element_text(angle=-25, hjust= .1))
答案 1 :(得分:1)
我看到酒吧里的小片片没有意义。
似乎geom_mosaic调用正在为两个类别绘制所有级别的子类别。许多人会认为这是一个&#34;功能&#34;而不是&#34; bug。&#34;请参阅下面的图表,它使用您的确切电话,但使用fill = Subcategory
您还可以使用显示
的table(df$Category, df$Subcategory)
命令查看此内容
Address Login Lost New contract Stolen Bankpass 0 1 1 0 1 Moving 1 0 0 1 0
无论如何,最简单的解决方案是@esm上面提到的解决方案,使用offset = 0
隐藏这些没有条目的因素。