我无法弄清楚,为什么ggplot
在下图中间绘制一个洞:
这里的数据和代码:
dat15 <- data.frame("Insgesamt" = c(64, 20, 13, 3),
"18-29" = c(41, 25, 27, 7),
"30-44" = c(58, 25, 12, 5),
"45-59"=c(69, 20, 10, 1),
"60+" = c(76, 14, 9, 1),
"Arbeiter" = c(57, 34, 9, 0),
"Angestellte" = c(69, 17, 11, 3),
"Beamte" = c(72, 12, 11, 5),
"Selbstständige" = c(69, 23, 5, 3),
"unter 1000" = c(47, 30, 19, 4),
"1000-2000" = c(59, 24, 15, 2),
"2000-3000" = c(72, 15, 10, 3),
"3000+" = c(68, 19, 10, 3),
"seit Geburt" = c(65, 19, 12, 4),
"zugez. vor 20" = c(72, 17, 9, 2),
"zugez. in 20" = c(46, 28, 19, 7),
row.names = c("zum Vorteil", "zum Nachteil", "keine Veränderung", "weiß nicht"))
dat15 <- melt(dat15)
dat15$type = c("zum Vorteil", "zum Nachteil", "keine Veränderung", "weiß nicht")
dat15.1 <- dat15[c(1:4),]
dat15.1$labelpos <- cumsum(dat15.1$value) - dat15.1$value / 2
plot15.1 <- ggplot() +
theme_m(base_family = family,base_size=size) + xlab("") + ylab("")
plot15.1 <- plot15.1 +
geom_bar(ata = dat15.1, aes(x = dat15.1$variable, y = dat15.1$value,
fill=dat15.1$type), stat = 'identity')
plot15.1 <- plot15.1 + coord_polar("y", start = 0)
答案 0 :(得分:13)
如果您将参数width = 1
添加到geom_bar
:
ggplot() +
geom_bar(data = dat15.1, aes(x = variable, y = value, fill = type),
stat = 'identity', width = 1) +
coord_polar("y", start = 0)
答案 1 :(得分:2)
根据帮助手册中的示例,另一种方法是将x
设置为1,即所谓的“假”&#39;价值:
ggplot() +
geom_bar(data = dat15.1, aes(x = 1, y = value, fill = type),
stat = 'identity') +
coord_polar("y", start = 0)
有时,使用aes_string()
代替方便:
ggplot() +
geom_bar(data = dat15.1, aes_string(x = 1, y = 'value', fill = 'type'),
stat = 'identity') +
coord_polar("y", start = 0)
截至2016年5月,输出完全如Sven Hohenstein在接受的答案中所示。
我无法评论在x = 1
内部aes()
或width = 1
内部geom_bar()
更合适。