我有这样的数据集
data=data.frame(Var1 = c('a', 'b'), Freq=c(31, 48))
我想制作一个ggplot饼图。我按照以下步骤进行:
library(ggplot2)
tbl <- transform(data,
freq = cumsum(Freq),
perc = Freq/sum(Freq),
pos = (cumsum(Freq) - 0.5 * Freq) / sum(Freq))
ggplot(data=tbl, aes(x="", y=perc, fill = factor(Var1))) +
geom_bar(width = 0.8, stat="identity") +
coord_polar(theta="y",start = 0, direction = 1) +
geom_text(aes(label=paste(round(perc*100),"%",sep=""), y=pos),
color="grey20" ,size=15) +
scale_fill_manual(tbl$Var1,values = c("coral2", "red")) +
theme_bw() +
theme (panel.border = element_blank(),legend.title = element_blank(),
axis.ticks = element_blank(),axis.title.x = element_blank(),
axis.title.y = element_blank(), axis.text.x = element_blank(),
axis.line=element_blank(),panel.grid.major=element_blank(),
legend.background = element_rect(fill="transparent"), legend.position=c(0.5,0.1),
legend.direction="vertical", legend.text=element_text(size = 20))
我得到了饼图 正如您所看到的,文本方向和图形不同。 我使用
coord_polar(theta="y",start = 0, direction = 1)
,其中direction = 1
表示顺时针方向。 但实际上,馅饼的方向是逆时针的。 我做错了什么?
accuracy
未知,我不得不从github加载scales
。devtools::install_github("r-lib/scales")
- Edward