Визуализация данных в R, сортировка geom_raster()
У меня есть приведенная ниже визуализация данных по ожидаемой продолжительности жизни в Азии с использованием набора данных с разрывами. Как я могу изменить график, чтобы упорядочить его, основываясь на странах с более высокой продолжительностью жизни вниз?
Вот мой код:
install.packages("gapminder")
library(gapminder)
Asia_sample2 <- gapminder %>% filter (gapminder$continent =="Asia")
p1 <- ggplot(data = Asia_sample2, aes(x = year , y = country , fill = lifeExp ))
p1 + geom_raster() +scale_fill_gradient(low="blue", high="red") +
theme_bw() +
labs(title = "Estimated Life Expectancy in Asia , Years(1952-2007)")
1 ответ
Вы можете создать столбец с указанием возраста по стране, а затем отсортировать уровни фактора country
на основе средних значений возраста, например:
library(gapminder)
library(dplyr)
library(ggplot2)
Asia_sample2 <- gapminder %>% group_by(country) %>%
mutate(lifeExp_mean = mean(lifeExp)) %>% filter (continent =="Asia") %>%
arrange(lifeExp_mean) %>% ungroup()
Asia_sample2$country <- factor(Asia_sample2$country, levels=unique(Asia_sample2$country))
p1 <- ggplot(data = Asia_sample2, aes(x = year , y = country , fill = lifeExp ))
p1 + geom_raster() + scale_fill_gradient(low="blue", high="red") +
theme_bw() +
labs(title = "Estimated Life Expectency in Asia , Years(1952-2007)")
ggsave("plot.png", width = 10, height = 5)