暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

R语言绘图|动态折线图

1589
点击关注了解更多哦

本文主要展示如何利用R语言ggplot2gganimate包绘制动态折线图。

1、数据准备

以北京、天津、上海、重庆四个直辖市2001-2020年人均GDP为例,展示绘制动态折线图。数据可在国家统计局[1]官网获取。

setwd("C:\\Users\\Acer\\Desktop")
#install.packages("reshape2")
#install.packages("ggplot2")
#install.packages("gganimate")
#install.packages("RColorBrewer")
library(reshape2)
library(ggplot2)
library(gganimate)
library(RColorBrewer)
city_data <- read.csv("C:\\Users\\Acer\\Desktop\\作图演示数据\\city.csv")
city <- reshape2::melt(city_data, id.vars = "Year", variable.name = "City", value.name = "Per.GDP"#数据转换
head(city)
#  Year    City Per.GDP
#1 2001 Beijing   28097
#2 2002 Beijing   32231
#3 2003 Beijing   36583
#4 2004 Beijing   42402
#5 2005 Beijing   47182
#6 2006 Beijing   53438
str(city)
#'data.frame': 80 obs. of  3 variables:
# $ Year   : int  2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 ...
# $ City   : Factor w/ 4 levels "Beijing","Tianjin",..: 1 1 1 1 1 1 1 1 1 1 ...
# $ Per.GDP: int  28097 32231 36583 42402 47182 53438 63629 68541 71059 78307 ...

2、图形绘制

2.1 基本折线图绘制

ggplot(data = city, aes(x = Year, y = Per.GDP,group = City, color = City, shape = City)) + 
  geom_line() + 
  geom_point( size = 3) + 
  scale_color_brewer(palette = "Set1") + 
  labs(x = "年份", y = "人均GDP") + 
  theme_bw() + 
  theme(legend.position = c(0.2,0.8),
        legend.background = element_blank(),
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 10),
        axis.text.y = element_text(angle = 90))

2.2 动态折线图绘制。利用gganimate包中的transition_reveal() 函数绘制动态图,along参数指定动态变量。

ggplot(data = city, aes(x = Year, y = Per.GDP,group = City, color = City, shape = City)) + 
  geom_line() + 
  geom_point( size = 3) + 
  scale_color_brewer(palette = "Set1") + 
  labs(x = "年份", y = "人均GDP") + 
  theme_bw() + 
  theme(legend.position = c(0.2,0.8),
        legend.background = element_blank(),
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 10),
        axis.text.y = element_text(angle = 90)) + 
  transition_reveal(along =  Year)

3、其他

关于ggplot2绘制折线图可进一步阅读R语言绘图|折线图与面积图绘制。关于gganimate[2]可以进一步阅读CRAN上的帮助文档。


如有帮助请多多点赞哦!

参考资料

[1]

国家统计局: https://data.stats.gov.cn/index.htm

[2]

gganimate: https://cran.r-project.org/web/packages/gganimate/gganimate.pdf


文章转载自日常分享的小懒猫,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论