[英]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.