ggplot轴不符合数字数据

时间:2014-03-01 08:32:36

标签: r ggplot2 axis-labels

我正在制作堆积条形图(再见饼图),我注意到我的数值被转换。不遵循数据中的x轴。

我希望我的x轴标签保持不变,并且不会被数百分割,如下面的结果所示:

enter image description here

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)))

1 个答案:

答案 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)