簡體   English   中英

r如何使用自由刻度更改刻面圖中的x軸標簽以及如何添加第二軸

[英]r How to change order x axis labels in faceted plots using free scales and how to add a seconday axis

我有兩個問題:

  1. 在刻面圖中更改x標簽的順序。
  2. 我想在刻面圖中添加輔助軸。
DATA
areas <- as.data.frame(c("area A", "area A", "area A", "area A", "area A", 
            "area A", "area A",   "area A", "area A", "area B", "area B", 
            "area B", "area B", "area B", "area B", "area B", "area B", 
            "area B", "area B"))

code <- as.data.frame(c("A", "D", "B", "C", "A", "D", "B", "A", "B", "E", "F", "G", "E", "F", "G", "E", "H", "F", "G"))

code_sec <- as.data.frame(c("CS", "FA", "IC", "MO", "CS", "FA", "IC", "CS", "IC",  "CSIC", "ICMO", "MOFA", "CSIC", "ICMO", "MOFA", "CSIC", "FAME", "ICMO","MOFA"))

sex <- as.data.frame(c("Female", "Female", "Female", "Female", "Male",   "Male",   "Male" ,  "Unk",    "Unk",    "Female", "Female", "Female", "Male",   "Male",  "Male", "Unk",  "Unk", "Unk", "Unk"))

 cases <- as.data.frame(c(5,1,  8,  1,  3,  1, 11,  2,  5, 22,  5,  2, 17,  
       6, 1, 13,  1, 4, 1))

freq <- as.data.frame(c(3,  6,  6,  3,  3, 2,  5,  4,  2,  9, 13,
           9, 10,  4,  4, 11,  4,  3,  2))

names(data) <- c( "areas", "code", "code_sec","sex", "cases", "freq")

  1. 我想在下一個順序中使用數據$ code_sec中的x_labels圖形:第一個圖形的CS,IC,MO,FA和第二個圖形的CSIC,ICMO,MOFA,FAME。 但是,它們按字母順序排列。 我按照我要求的順序使用了第二個代碼名稱(數據$ code),但是我無法更改圖形中的x_labels。 我使用scale_x_discrete而不是自由縮放並且工作,但所有x_labels都出現在帶有空格的兩個分面圖形中。
  2. 我想在兩個圖形中添加一個帶有數據$ freq的輔助軸,我試圖將輔助軸與分面的y_free比例或scale_y_continuos一起添加,但是沒有用,我沒有弄清楚問題是什么。

這是我用於面對圖形的代碼。

ggplot(exampledata, aes(x=code, y=cases,fill=sex))+
facet_wrap(~areas, norw = 2, scales = "free")+
geom_bar(position=position_dodge(), stat="identity")+
ggplot(exampledata, aes(x=code_sec %>% forcats::fct_reorder(code), y= cases, fill=sex))+
  facet_wrap(~areas, nrow = 2, scales = "free") +
  geom_bar(position=position_dodge(), stat="identity") +
  geom_bar(position=position_dodge(), stat="identity", color = "black", fill = NA, 
           aes(group = sex, y = freq)) +
  labs(title = "Cases in shaded areas, frequency in outlined bars", x = "code_sec")

在此輸入圖像描述


來源數據:

exampledata <- tibble(areas = c("area A", "area A", "area A", "area A", "area A", 
                             "area A", "area A",   "area A", "area A", "area B", "area B", 
                             "area B", "area B", "area B", "area B", "area B", "area B", 
                             "area B", "area B"),
                   code = c("A", "D", "B", "C", "A", "D", "B", "A", "B", "E", "F", "G", "E", "F", "G", "E", "H", "F", "G"),
                   code_sec = c("CS", "FA", "IC", "MO", "CS", "FA", "IC", "CS", "IC",  "CSIC", "ICMO", "MOFA", "CSIC", "ICMO", "MOFA", "CSIC", "FAME", "ICMO","MOFA"),
                   sex = c("Female", "Female", "Female", "Female", "Male",   "Male",   "Male" ,  "Unk",    "Unk",    "Female", "Female", "Female", "Male",   "Male",  "Male", "Unk",  "Unk", "Unk", "Unk"),
                   cases = c(5,1,  8,  1,  3,  1, 11,  2,  5, 22,  5,  2, 17,  
                             6, 1, 13,  1, 4, 1),
                   freq = c(3,  6,  6,  3,  3, 2,  5,  4,  2,  9, 13,
                            9, 10,  4,  4, 11,  4,  3,  2))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM