ggplot&x27;s geom_text()饼图的标签隐藏了geom_bar()制作的饼图
我使用聚合(,,FUN=sum)函数构造了以下数据:ggplot&x27;s geom_text()饼图的标签隐藏了geom_bar()制作的饼图,r,ggplot2,label,R,Ggplot2,Label,我使用聚合(,,FUN=sum)函数构造了以下数据: structure(list(Group.1 = structure(c(1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L), .Label = c("Black or African American", "White Alone", "White Alone LR"), class = "factor"), Group.2 = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 3L,
structure(list(Group.1 = structure(c(1L, 2L, 3L, 1L, 2L, 3L,
1L, 2L, 3L), .Label = c("Black or African American", "White Alone",
"White Alone LR"), class = "factor"), Group.2 = structure(c(1L,
1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L), .Label = c("bus", "mixed", "rail"
), class = "factor"), x = c(75143.5182835844, 198737.537113379,
46973.6469041183, 46199.2335265697, 128026.568239224, 28933.3028730992,
75876.5845180076, 495166.957025367, 5909.04640985574), pos = c(37571.7591417922,
99368.7685566897, 23486.8234520592, 98243.1350468693, 262750.821232991,
61440.2983406679, 159281.044069158, 574347.583865287, 78861.4729821454
), labe = c(" 75,144", "198,738", " 46,974", " 46,199", "128,027",
" 28,933", " 75,877", "495,167", " 5,909")), class = c("tbl_df",
"tbl", "data.frame"), .Names = c("Group.1", "Group.2", "x", "pos",
"labe"), row.names = c(NA, -9L))
我得到了制作饼图的好代码,这导致:
modesplit <- ggplot(data = sums) +
geom_bar( aes(factor(1), y=x, fill=Group.2), stat="identity", position="fill") +
scale_fill_discrete(guide=guide_legend(title="Mode")) +
coord_polar(theta="y") +
facet_grid(.~Group.1, labeller = label_value) +
scale_x_discrete(name=" ", breaks = NULL) +
scale_y_continuous(name=" ", breaks = NULL)
plot(modesplit)
modesplit这是一个规模问题。注释掉coord\u polar
和您的scale\u y\u continuous
,然后运行带有和不带geom\u文本的代码。geom_栏中的position=“fill”
使其加起来等于1,而您的pos
值为数万
这里有一个解决方案(<强>编辑,所以现在标签很好地放在中间)
库(dplyr)
sums2=总和%>%group_by(group.1)%>%
变异(x_=x/和(x),
pos_scaled=pos/cumsum(x_scaled)-x_scaled/2)
由于某些原因,您的dput结构无法工作。你能检查它是否是正确的代码吗?检查:首先将你的data@MichaelVE修好了,笨蛋!我希望分组可能是我策划的问题,但没有。我无意中把这两个例子混在一起,似乎都没有太多注意。谢谢
modesplit <- ggplot(data = sums) +
geom_bar( aes(factor(1),y=x,fill=Group.2),stat="identity", position="fill") +
geom_text(aes(,y=pos, label = labe), size =5) +
scale_fill_discrete(guide=guide_legend(title="Mode")) +
coord_polar(theta="y") +
facet_grid(.~Group.1,labeller = label_value) +
scale_x_discrete(name=" ", breaks = NULL) +
scale_y_continuous(name=" ", breaks = NULL) +
plot(modesplit)
library(dplyr)
sums2 = sums %>% group_by(Group.1) %>%
mutate(x_scaled = x / sum(x),
pos_scaled = pos / cumsum(x_scaled) - x_scaled / 2)
modesplit <- ggplot(data = sums2, aes(x = factor(1))) +
geom_bar( aes(y=x_scaled, fill=Group.2), stat="identity", position="stack") +
scale_fill_discrete(guide=guide_legend(title="Mode")) +
coord_polar(theta="y") +
geom_text(aes(y = pos_scaled, label = labe), size =5) +
facet_grid(. ~ Group.1, labeller = label_value) +
scale_x_discrete(name=" ", breaks = NULL) +
scale_y_continuous(name=" ", breaks = NULL)
plot(modesplit)