對于下面的資料集,我想通過根據 65 歲經歷的死亡總數排序狀態來自定義我的下圖。我嘗試了下面的代碼。

uj5u.com熱心網友回復:
@RobertoT 的回答討論了如何按年齡和 Dx 排序。如果你想行內使用dplyr::arrangeand forcats::fct_inorder:
按年齡和 Dx 重新排序
library(dplyr)
library(forcats)
CAPS_2019 %>%
arrange(desc(Age), desc(Dx)) %>%
ggplot(aes(x = fct_inorder(PopName), y = Dx, fill = factor(as.character(Age))))
geom_col(position = position_stack(reverse = TRUE))
facet_wrap("Age",scales="free_x")
theme_classic()
theme(strip.background = element_blank(), strip.text = element_blank())
coord_flip()
labs(x = "State", y = "Deaths (%)", caption = (""), face = "bold", fill = "Age")
65 歲時由 Dx 專門重新訂購
如果您想按 65 歲的死亡人數專門排序(根據提交的問題),您可以執行以下操作:
library(dplyr)
library(forcats)
CAPS_2019 %>%
group_by(PopName) %>%
mutate(Dx_Age65 = Dx[Age == 65]) %>%
ggplot(aes(x = fct_reorder(PopName, Dx_Age65, .desc = TRUE), y = Dx, fill = factor(as.character(Age))))
geom_col(position = position_stack(reverse = TRUE))
facet_wrap("Age",scales="free_x")
theme_classic()
theme(strip.background = element_blank(), strip.text = element_blank())
coord_flip()
labs(x = "State", y = "Deaths (%)", caption = (""), face = "bold", fill = "Age")
uj5u.com熱心網友回復:
Popname是一個因子,其中一些級別已經對值進行了排序。你必須重新排列它們:
> CAPS_2019$PopName
[1] AK AK AK AL AL AL AR AR AR
Levels: AK AL AR
您可以按降序排列df,Age因此Dx對第一個值Popname進行排序。
CAPS_2019 %>% arrange(desc(Age),desc(Dx))
# A tibble: 9 x 3
Age Dx PopName
<fct> <dbl> <fct>
1 65 21.9 AL
2 65 21.3 AR
3 65 17.2 AK
4 50 8.86 AL
5 50 7.89 AR
6 50 7.85 AK
7 30 3.06 AK
8 30 2.85 AL
9 30 2.52 AR
如果您提取已排序的唯一值,Popname您可以使用它們根據需要重置級別。但是,因為您正在使用coord_flip()翻轉軸,所以級別將在您的繪圖中以相反的方式排序。您可以在 ggplot 代碼中修復它,或者只是按升序對級別進行排序:
CAPS_2019 %>% arrange(desc(Age),Dx) %>% pull(PopName) %>% unique() %>% as.character()
[1] "AK" "AR" "AL"
然后,只需Popname使用新級別編輯列:
CAPS_2019$PopName = factor(as.character(CAPS_2019$PopName), # the values
CAPS_2019 %>% arrange(desc(Age),Dx) %>% pull(PopName) %>% unique() %>% as.character() # the levels sorted in ascending
)
[1] AK AK AK AL AL AL AR AR AR
Levels: AK AR AL
接下來,按原樣繪制圖形。將 x 軸的美學更改ggplot()為:x = Popname

PS:請注意,如果您不翻轉軸,則繪圖按升序排序。

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/488003.html
