使用此数据集:
Estado Posição Ano
São Paulo 1 2017
Santa Catarina 2 2017
Paraná 3 2017
Distrito Federal 4 2017
Mato Grosso do Sul 5 2017
Minas Gerais 6 2017
Rio Grande do Sul 7 2017
Espirito Santo 8 2017
Rio de Janeiro 9 2017
Paraiba 10 2017
Ceará 11 2017
Mato Grosso 12 2017
Goiás 13 2017
Roraima 14 2017
Rio Grande do Norte 15 2017
Tocantins 16 2017
Rondônia 17 2017
Pernanbuco 18 2017
Acre 19 2017
Bahia 20 2017
Pará 21 2017
Amazonas 22 2017
Piauí 23 2017
Alagoas 24 2017
Maranhão 25 2017
Amapá 26 2017
Sergipe 27 2017
São Paulo 1 2018
Santa Catarina 2 2018
Paraná 4 2018
Distrito Federal 3 2018
Mato Grosso do Sul 7 2018
Minas Gerais 6 2018
Rio Grande do Sul 5 2018
Espirito Santo 8 2018
Rio de Janeiro 13 2018
Paraiba 9 2018
Ceará 12 2018
Mato Grosso 11 2018
Goiás 10 2018
Roraima 18 2018
Rio Grande do Norte 19 2018
Tocantins 15 2018
Rondônia 14 2018
Pernanbuco 20 2018
Acre 27 2018
Bahia 22 2018
Pará 23 2018
Amazonas 17 2018
Piauí 21 2018
Alagoas 16 2018
Maranhão 26 2018
Amapá 24 2018
Sergipe 25 2018
我尝试使用此代码(在注释中):
library(ggplot2)
library(grid)
ggplot(an.18.19.a, aes(x = Ano, y = Posição, group = Estado, label = Estado)) +
geom_path(aes(x = Ano), arrow = arrow(length = unit(0.02, "npc")), size = 1, color = "green") +
geom_text(size = 1) +
theme_minimal() +
theme(axis.title = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
panel.grid = element_blank())
但是不幸的是,它没有用,有人建议帮我吗?
答案 0 :(得分:1)
下面是一些入门的代码,其输出类似于示例。
library(dplyr)
library(ggplot2)
an.18.19.a %>%
arrange(Estado, Ano) %>%
group_by(Estado) %>%
mutate(Change = case_when(Posição < lead(Posição) ~ 1,
Posição > lead(Posição) ~ -1,
TRUE ~ 0),
Change = sum(Change, na.rm = TRUE),
Ano = factor(Ano)) %>%
ggplot(aes(reorder(Ano, Posição), Posição)) +
geom_point(aes(color = factor(Change))) +
geom_line(aes(group = Estado, color = factor(Change))) +
geom_text(data = filter(an.18.19.a, Ano == 2017),
aes(label = paste(Estado, Posição)), size = 2, nudge_x = -0.1, hjust = 1) +
geom_text(data = filter(an.18.19.a, Ano == 2018),
aes(label = paste(Posição, Estado)), size = 2, nudge_x = 0.1, hjust = 0) +
scale_y_reverse() +
scale_color_manual(values = c("blue", "grey", "red")) +
theme(axis.line = element_blank(),
axis.text = element_blank(),
axis.title = element_blank(),
axis.ticks = element_blank(),
panel.grid = element_blank(),
panel.border = element_blank()) +
guides(color = FALSE)
结果: