繁体   English   中英

gg plot破坏顺序时的geom_bar

[英]geom_bar at gg plot ruins order

我有以下数据表

decomp1 <- data.table(V2 = c("Sp", "Sp", "Su", "Sp", "Su", "Su", "X", 
                      "Su", "X", "Su", "X", "X", "Sp", "Sp", "X", "Su", "X", "Sp", 
                      "X", "Su", "Sp", "Su", "Su", "X", "Sp", "Sp", "Sp", "Su", "Su", 
                      "X", "Sp", "Sp", "X", "Su", "X", "Su", "Sp", "X", "Su", "Sp", 
                      "Sp", "Su"), 
               V3 = c("Sp", "Sp", "Su_6", "Sp", "Su_6", "Su_6", 
                                          "X", "Su_6", "X", "Su_6", "X", "X", "Sp", "Sp", "X", "Su_6", 
                                          "X", "Sp", "X", "Su_6", "Sp", "Su_6", "Su_6", "X", "Sp", "Sp", 
                                          "Sp", "Su_6", "Su_6", "X", "Sp", "Sp", "X", "Su_6", "X", "Su_6", 
                                          "Sp", "X", "Su_6", "Sp", "Sp", "Su_6"),
               V4 = c("Va", "Va", "Pr", 
                      "Va", "Pr", "Pr", "Tr", "He", "He", "He", "Tr", "He", "He", "He", 
                      "Tr", "He", "He", "He", "Qu", "Qu", "Qu", "Qu", "NP", "Qu", "Qu", 
                      "NP", "Qu", "NP", "Qu", "Qu", "NP", "NP", "NP", "NP", "NP", "Tr", 
                      "Tr", "NP", "Tr", "Tr", "Tr", "Tr"), 
               V5 = c("Non", "Long", "Non", 
                      "Ca", "Long", "Ca", "Non", "Non", "Non", "Long", "Long", "Long", 
                      "Non", "Long", "Ca", "Ca", "Ca", "Ca", "Non", "Non", "Non", "Long", 
                      "Non", "Long", "Long", "Non", "Ca", "Long", "Ca", "Ca", "Long", 
                      "Ca", "Non", "Ca", "Long", "Non", "Non", "Ca", "Long", "Long", 
                      "Ca", "Ca"), 
               V6 = c("Total", "Total", "Total", "Total", "Total", 
                      "Total", "Total", "Total", "Total", "Total", "Total", "Total", 
                      "Total", "Total", "Total", "Total", "Total", "Total", "Total", 
                      "Total", "Total", "Total", "Total", "Total", "Total", "Total", 
                      "Total", "Total", "Total", "Total", "Total", "Total", "Total", 
                      "Total", "Total", "Total", "Total", "Total", "Total", "Total", 
                      "Total", "Total"), 
               V1 = c("0.072384480,", "0.005913364,", "0.084688599,", 
                      "0.014997295,", "0.010088229,", "0.020780549,", "0.244325980,", 
                      "0.269335944,", "0.282962793,", "0.018655723,", "0.051010924,", 
                      "0.014688654,", "0.298544133,", "0.026934186,", "0.052777085,", 
                      "0.060859581,", "0.051597466,", "0.025747971,", "0.374481663,", 
                      "0.379704887,", "0.390599270,", "0.030278558,", "0.410034427,", 
                      "0.051577777,", "0.035755516,", "0.440449409,", "0.016192095,", 
                      "0.040907457,", "0.050172704,", "0.037228066,", "0.033683551,", 
                      "0.016825497,", "0.493787903,", "0.045299959,", "0.032781898,", 
                      "0.556733851,", "0.577734392,", "0.063572428,", "0.038519396,", 
                      "0.039316251,", "0.017420358,", "0.044930589)"), 
               V7 = c(0.07238448, 
                      0.07829784, 0.0846886, 0.09329514, 0.09477683, 0.11555738, 0.24432598, 
                      0.26933594, 0.28296279, 0.28799167, 0.2953369, 0.29765145, 0.29854413, 
                      0.32547832, 0.34811399, 0.34885125, 0.34924891, 0.35122629, 0.37448166, 
                      0.37970489, 0.39059927, 0.40998344, 0.41003443, 0.42605944, 0.42635479, 
                      0.44044941, 0.44254688, 0.45094188, 0.46015615, 0.46328751, 0.47413296, 
                      0.49095846, 0.4937879, 0.49624184, 0.5265698, 0.55673385, 0.57773439, 
                      0.59014223, 0.59525325, 0.61705064, 0.634471, 0.64018384))

然后我跑

print(ggplot(decomp1,aes(x=V4,y=V1,fill=V5,label=paste0(round(V1,3)*100,"%")))+theme_pl()+geom_bar(stat = "identity",aes(width=0.5))+facet_grid(V3~.)+
        scale_fill_manual(values = c(c("Non"="#1581A4", "Long"="#FFA600", "Ca"="#B50000")))+
        scale_y_continuous(label=percent,limits = c(0,0.7))+
        theme(legend.title=element_blank(),axis.title.x = element_blank(),axis.title.y = element_blank())+
        geom_text(aes(y=V7-V1/2),col="white",size=3)+
        geom_text(data=decomp1[,.(V1=sum(V1),V5="Non"),by=.(V4,V3)],aes(y=V1,vjust=-1,fontface="bold")))

我得到了输出 在此处输入图片说明

如您所见,“颜色”的顺序不正确。 因此,实际上我最后想要的是相同的图,具有相同的数字,但每行每一列中的颜色顺序(从下到上)应该是蓝色>黄色>红色,并且不是红色>黄色>蓝色。 我不知道为什么会这样

您在哪个版本的ggplot2下运行? 下列:

ggplot(decomp1, aes(x=V4,y=V1,fill=V5, label=paste0(round(V1,3)*100,"%"))) +
  geom_bar(stat="identity", width=0.5) +
  geom_text(aes(y=V7-V1/2), col="white", size=3) +
  geom_text(data=decomp1[,.(V1=sum(V1),V5="Non"), by=.(V4,V3)], 
            aes(y=V1, vjust=-1), fontface="bold") +
  scale_fill_manual(values=c("Non"="#1581A4", "Long"="#FFA600", "Ca"="#B50000")) +
  scale_y_continuous(label=scales::percent,limits = c(0,0.7)) +
  facet_grid(V3~.) +
  theme(legend.title=element_blank(),
        axis.title.x=element_blank(),
        axis.title.y=element_blank())

产生:

在此处输入图片说明

在最新的ggplot2 pkg下。

我们没有theme_pl() ,因此主题美学上的差异。

确实将一些不属于aes()东西移到了aes() ,并更好地组织了绘图代码(我无法想象以原始格式调试任何东西),但是因数顺序决定了条形图的顺序,并且似乎可以正常工作最新的pkgs。


> session_info()
Session info -------------------------------------------------------------------------
 setting  value                       
 version  R version 3.3.2 (2016-10-31)
 system   x86_64, darwin13.4.0        
 ui       RStudio (1.0.136)           
 language (EN)                        
 collate  en_US.UTF-8                 
 tz       America/New_York            
 date     2016-12-16                  

Packages -----------------------------------------------------------------------------
 package    * version    date       source                         
 assertthat   0.1        2013-12-06 CRAN (R 3.3.0)                 
 colorspace   1.2-6      2015-03-11 CRAN (R 3.3.0)                 
 data.table * 1.9.8      2016-11-25 cran (@1.9.8)                  
 devtools   * 1.12.0     2016-06-24 CRAN (R 3.3.0)                 
 digest       0.6.10     2016-08-02 CRAN (R 3.3.0)                 
 ggplot2    * 2.2.0.9000 2016-12-16 Github (hadley/ggplot2@f6f9f9d)
 gtable       0.2.0      2016-02-26 CRAN (R 3.3.0)                 
 labeling     0.3        2014-08-23 CRAN (R 3.3.0)                 
 lazyeval     0.2.0      2016-06-12 CRAN (R 3.3.0)                 
 magrittr     1.5        2014-11-22 CRAN (R 3.3.0)                 
 memoise      1.0.0      2016-01-29 CRAN (R 3.3.0)                 
 munsell      0.4.3      2016-02-13 CRAN (R 3.3.0)                 
 plyr         1.8.4      2016-06-08 CRAN (R 3.3.0)                 
 Rcpp         0.12.8     2016-11-17 CRAN (R 3.3.2)                 
 reshape2     1.4.2      2016-10-22 cran (@1.4.2)                  
 rstudioapi   0.6        2016-06-27 CRAN (R 3.3.0)                 
 scales       0.4.1.9000 2016-12-16 Github (hadley/scales@89c2a2f) 
 stringi      1.1.2      2016-10-01 CRAN (R 3.3.0)                 
 stringr      1.1.0      2016-08-19 CRAN (R 3.3.0)                 
 tibble       1.2        2016-08-26 CRAN (R 3.3.0)                 
 withr        1.0.2      2016-06-20 CRAN (R 3.3.0)                 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM