[英]Reorder rows according to two column values in geom_tile() heatmap
library(tidyverse)
df <- data.frame(country = c("USA", "USA", "USA",
"UK", "UK", "UK",
"Japan", "Japan", "Japan",
"Germany", "Germany", "Germany",
"Sweden","Sweden","Sweden",
"Norway","Norway","Norway"),
year = c(2000, 2001, 2002,
2000, 2001, 2002,
2000, 2001, 2002,
2000, 2001, 2002,
2000, 2001, 2002,
2000, 2001, 2002),
value = c(0,1,1,
1,1,1,
0,0,0,
0,0,1,
0,1,1,
0,1,0))
ggplot(df, aes(year, country, fill = factor(value)))+
geom_tile(color = "white", size = 1)+
theme_minimal()
這是我得到的數據、代碼和原始 plot。 有沒有一種方法可以同時按國家行的value
和year
重新排序?
我的目標:國家行將在第 s year
按它們的第一個value
=1 排序。
問題:因為我也希望傳奇成為因素,而不是連續的。 這會在訂購時產生問題。
理想順序:
如果這是您正在尋找的,您可以使用fct_relevel
forcats
的 fct_relevel。
library(tidyverse)
library(forcats)
ro <- c('Japan', 'Germany', 'Norway', 'USA','Sweden', 'UK')
df %>%
mutate(country= fct_relevel(country, ro)) %>%
ggplot(aes(year, country, fill = factor(value))) +
geom_tile(color = "white", size = 1)+
theme_minimal()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.