楼主: 林随机漫步
1290 2

[学习分享] 用R语言让你的可视化图表动起来!动起来!!附源代码 [推广有奖]

  • 1关注
  • 3粉丝

已卖:1份资源

硕士生

7%

还不是VIP/贵宾

-

威望
0
论坛币
154 个
通用积分
102.8396
学术水平
11 点
热心指数
11 点
信用等级
11 点
经验
1957 点
帖子
67
精华
0
在线时间
138 小时
注册时间
2014-1-11
最后登录
2025-9-29

楼主
林随机漫步 发表于 2020-3-22 17:35:42 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

  1. ### 声  明:本内容为作者借助R3.6.3和Rstudio及相关包制作而成,仅供学习交流,咨询交流加wx:huyanggs 或Email:huyanggs@hotmail.com
  2. ### 主  题:动态折线图 ·中国2000-2019年国内生产总值(GDP)及分产业变动
  3. ### 数据源:中国国家统计局·国家数据
  4. ### author:@拴小林Nobeli
  5. ### 时  间:2020/3/22


  6. # 1.loading packages
  7. library(ggplot2)
  8. library(readxl)
  9. library(av) #动态输出批量图为视频
  10. library(tidyr)

  11. # 2.读取数据和整理数据
  12. setwd("C:/Users/ysl/Desktop/")
  13. dt <- readxl::read_xlsx("C:/Users/ysl/Desktop/CHINA_GDP.xlsx")
  14. dt_s <- dt[,c(1,3:6)]


  15. # 3.转换数据结构+变量标签化
  16. dt_tidyr <- gather(dt_s, GDPs, value,-Year)
  17. dt_tidyr$GDPs <- factor(dt_tidyr$GDPs, levels = c("GDP", "First_GDP", "Second_GDP", "Third_GDP"),
  18.                         labels = c("国内生产总值(GDP·万亿)", "第一产业GDP(万亿)", "第二产业GDP(万亿) ", "第三产业GDP(万亿)"))

  19. # 3.将逐年数据批量print,并保存到自定义函数makeplot中
  20. # 注释:学习av包,可 ??av_demo 和 ??av_capture_graphics
  21. makeplot <- function(){
  22.   dtlist <- NULL
  23.   j = NULL
  24.   for (i in 2000:max(dt_tidyr$Year)) {
  25.     j = i-1999
  26.     dtlist[[j]] <- dt_tidyr[dt_tidyr$Year %in% c(2000:i),]}


  27.   lapply(dtlist, function(data){
  28.     p <- ggplot(data, aes(x = Year, y = value, group = GDPs, color = GDPs, shape = GDPs)) +
  29.       geom_point(labels = data$value) +
  30.       geom_line(color = "grey") +
  31.       scale_x_continuous(limits = range(dt_tidyr$Year)) +
  32.       scale_y_continuous(limits = range(dt_tidyr$value)) +
  33.       labs(x = "年份", y = "产值") +
  34.       ggtitle("中国2000至2019年国内生产总值",
  35.               subtitle = paste0(max(data$Year),"年国内生产总值",data[which(data$Year == max(data$Year)),][which(data[which(data$Year == max(data$Year)),]$GDPs == "国内生产总值(GDP·万亿)"),"value"],"万亿元")) +
  36.       theme_classic() +
  37.       theme(plot.title = element_text(color = "black", size = 16, vjust = 0.5,hjust = 0.5),
  38.             legend.position = "bottom", legend.text = element_text(size = 8))

  39.     print(p)
  40.   })
  41. }

  42. # 4.将图片数据输出为视频
  43. # library(av)
  44. video_file <- file.path(getwd(), "output.mp4") #设置保存路径及文件名
  45. av_capture_graphics(makeplot(), video_file, 1280, 720, res = 144, vfilter = "framerate=fps=10") #参数意义可??av_capture_graphics学习
  46. av::av_media_info(video_file)
复制代码

源数据及R代码:

链接:https://pan.baidu.com/s/1xn4Fq2DvMOTZMQAvrFAB1A

提取码:fj2a



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝


已有 3 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
Sunknownay + 3 + 3 + 3 鼓励积极发帖讨论
crystal8832 + 20 + 20 + 2 + 2 + 2 精彩帖子
cheetahfly + 50 精彩帖子

总评分: 经验 + 20  论坛币 + 70  学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

沙发
crystal8832 学生认证  发表于 2020-3-23 11:47:12
最后运行时可以再加上
  1. utils::browseURL(video_file)
复制代码
命令,运行视频

藤椅
林随机漫步 发表于 2020-3-26 17:33:35
crystal8832 发表于 2020-3-23 11:47
最后运行时可以再加上命令,运行视频

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-8 06:20