我正在制作堆积条形图(再见饼图),我注意到我的数值被转换。不遵循数据中的x轴。
我希望我的x轴标签保持不变,并且不会被数百分割,如下面的结果所示:
require(reshape)
require(ggplot)
tab <- data.frame(
AAA=c("ANNNK","ASA","ANNNK","ASA"),
DDD=c("OAUDF","OAUDF","ANAN","ANAN"),
BBB=as.numeric(c(83.927061,87.336000,16.072939,12.664000))
)
dat <- melt(tab)
plot <- ggplot(dat,aes(AAA,value,fill=as.factor(DDD))) +
geom_bar(position="fill", stat="identity") +
scale_fill_brewer("NBAKDJSD", palette="OrRd") +
labs(x="AAA", y="DDD (%)") +
coord_flip() +
theme_bw() +
theme(
axis.title=element_text(size=rel(2), face="bold"),
axis.text=element_text(size=rel(1.5),color="#AAAAAA"),
axis.title.x=element_text(vjust=-3),
axis.title.y=element_text(vjust=-0.25),
strip.text.x = element_text(size = rel(2)),
legend.title=element_text(face="bold"),
legend.position="right",
plot.margin = unit(c(1,1.25,1.5,1.5), "cm"), # t,r,b,l
panel.margin = unit(2, "lines")
) +
xlim(rev(levels(dat$AAA)))
答案 0 :(得分:2)
您必须从position="fill"
移除geom_bar()
如果您使用position="fill"
,则条形显示相对比例,条形高度相同(1)。您已经拥有总和为100的数据。
+ geom_bar(stat="identity")
如果您想使用position="fill"
并在轴上获得100%,那么您可以在label=percent
内使用scale_y_continuous()
(您需要库缩放)。
library(scales)
ggplot(dat,aes(AAA,value,fill=as.factor(DDD))) +
geom_bar(position="fill", stat="identity") +
scale_y_continuous(label=percent)