作者:吴健 中国科学院大学 R语言、统计学爱好者,尤其擅长R语言和Arcgis在生态领域的应用分享

个人公众号:统计与编程语言

近日在google上浏览一篇文章《BBC Visual and Data Journalism cookbook for R graphics》,初看很简单,只需要安装bbplot包,然后该包只包含bbc_style()finalise_plot()两个函数,但是在实际操作时,也遇到一些困难,接下来,把我操作该包遇到的困难和大家分享交流一下。

包的安装

该文章中包的安装摒弃传统方式,取而代之使用了pacman包中的p_load函数安装R语言所需的包,该函数的优点是可以一次性加载多个包,同时可识别未安装的包,并自动安装加载。但我安装pacman包时,提示我的R版本较低,虽然我升级到最新R版本,但同样没有安装完成,可能原因是我电脑里默认路径中含有中文,所以安装过程产生一些问题,我从pacman包的网站

https://cran.r-project.org/web/packages/pacman/index.html

下载该包压缩文件(如下图),通过R语言中安装包-从本地文件加载成功安装了pacman包,在安装本文所需的其它包时,遇到类似问题也通过上述方法解决。

PS:大家在安装R语言包遇到困难时,也可以尝试采取上述方法。

字体问题

在显示BBC风格图片时,虽然可以正常显示,但是警告信息显示“Windows字体数据库里没有这样的字体系列”,分析是我的windows电脑里没有安装BBC所需格式的字体,但是我通过查看bbc_style函数的代码,发现bbc_style函数使用的字体是"Helvetica",我给我自己电脑安装了"Helvetica"字体,但是依然没有解决问题,如果大家解决了,希望留言告知。

下面我介绍一下bbplot包中的bbc_style()和finalise_plot()两个函数。

bbc_style()函数的使用

1multiple_line <- ggplot(multiple_line_df, aes(x = year, y = lifeExp, colour = country)) +2  geom_line(size = 1) +3  geom_hline(yintercept = 0, size = 1, colour="#333333") +4  scale_colour_manual(values = c("#FAAB18", "#1380A1")) +5  bbc_style() +6  labs(title="Living longer",7       subtitle = "Life expectancy in China and the US")8

可以看出bbc_style函数使用非常简单不需要任何参数,只需要把它作为一个默认ggplot2绘图主题使用即可,从bbc_style函数原代码也可以看出,bbc_style只是一个封装了默认主题的函数。

finalise_plot()函数的使用

1line <- ggplot(line_df, aes(x = year, y = lifeExp)) +2  geom_line(colour = "#1380A1", size = 1) +3  geom_hline(yintercept = 0, size = 1, colour="#333333") +4  bbc_style() +5  labs(title="Living longer",6       subtitle = "Life expectancy in Malawi 1952-2007")78finalise_plot(plot_name, source, save_filepath, width_pixels = 640, height_pixels = 450)9

plot_name参数:要把代码中哪个图片保存输出,如上例中的line。

source参数:BBC格式图表注记。

save_filepath参数:输出图片路径。

width_pixels参数:输出宽度。

height_pixels参数:输出高度。

——————————————

往期精彩:

  • 19 岁少年找 Bug 赚了 100 万美元

  • 你不理解苏大强的作,AI 能吗?

  • 数据揭秘,在中国谁拥有私人飞机

  • R语言中文社区2018年终文章整理(作者篇)

  • R语言中文社区2018年终文章整理(类型篇)

r语言 index_基于R语言绘制BBC风格图表相关推荐

  1. 教务处管理系统c语言编程,基于C语言的教务管理系统的设计

    基于C语言的教务管理系统的设计(任务书,开题报告,论文12000字,程序代码) 摘要 教务管理系统是现代化教育的重要组成部分,在现代高校管理中,一个高效的.准确的教务系统不仅能大大提高教学管理效率,还 ...

  2. 将 改为c语言表达式,基于c语言表达式求解课程设计修改.doc

    基于c语言表达式求解课程设计修改 摘 要 通过数据结构这门课程,我们较深入的了解到了栈,栈是一种重要的线性结构,它广泛应用于各种软件系统中,因此在面向对象的程序设计中,它们是多型数据类型. 本次试验我 ...

  3. 学校图书管理系统基于c语言源代码,基于C语言的学校图书管理系统参考.doc

    基于C语言的学校图书管理系统参考 本科学生毕业论文(设计) 题目(中 文):基于C语言的学校图书管理系统(英 文):School Library Management System Based on ...

  4. 步进电机循环脉冲c语言程序,基于C语言的步进电机调速.doc

    课 程 设 计 (论文) 题目 基于C语言的步进电机调速 目 录 0. 前言3 1.基本理论4 2. 方案设计4 2.1 步进电机5 2.2 8255芯片5 3. 硬件电路的工作原理5 3.1 步进电 ...

  5. 两小灯同亮同灭c语言程序,基于C语言与Proteus联合仿真的单片机技术最新章节_何波,丘利丽著_掌阅小说网...

    前言 随着嵌入式技术的飞速发展,嵌入式系统产品正不断渗透到各行各业,如智能家居.车载电子设备等.因此,单片机技术作为嵌入式计算机控制系统的重要技术,已经越来越受到各个应用领域的重视,尤其对于直接面向企 ...

  6. 火车售票系统c语言编程,基于C语言实现简单的12306火车售票系统.pdf

    基基于于C语语言言实实现现简简单单的的12306火火车车售售票票系系统统 程序设计要求用C语言写一个简单的火车售票系统,主要实现的功能为: 入班次信息 浏览班次信息 按班次号查询 按终点站查询 按余票 ...

  7. 学生管理系统c#语言代码,基于C#语言的学生管理系统的设计(ASP.NET2.0)

    摘  要 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用.学生管理系统是学校管理中不可少的一部分.而基于B/S架构的学生管 ...

  8. libvirt 用c语言编译,基于C语言libvirt API简单小程序

    libvirt API简单小程序 1.程序代码如下 #include #include int getDomainInfo(int id) { virConnectPtr conn = NULL; v ...

  9. qt扫雷鼠标c语言中文网,基于C语言实现的扫雷游戏代码

    /* 模拟扫雷游戏 */ #include #include #include #include #include #include #include union REGS regs; int siz ...

最新文章

  1. 计算机网络知到马惜平答案,计算机网络实习用Dreamweaver搭建个人网站
  2. 云栖2050 —— 面向年青人的科技公益大会
  3. 【C 语言】文件操作 ( 配置文件读写 | 框架搭建 | 写出或更新配置文件 | 读取配置文件 )
  4. 设计模式-Observer模式
  5. 3行代码给你的python提速4倍!
  6. xstream不映射字段_Mybatis_day03:输入映射和输出映射
  7. [转]Web Api系列教程第2季(OData篇)(二)——使用Web Api创建只读的OData服务
  8. DataReader对象的基本使用 c#
  9. 学习笔记-工业相机与普通相机优劣利弊
  10. 陀螺仪指向的是什么方向
  11. Excel数据转换成SQL
  12. ABAQUS单位统一
  13. [Python3网络爬虫开发实战] Appium 爬取微信朋友圈
  14. 我在使用Next.js, Antd, @zeit/next-css时遇到的一些问题
  15. 快递100接口使用整理
  16. java程序模拟手机
  17. 9.目标检测基础、图像风格迁移
  18. WEB应用图片的格式,以及各自的特点和优化(一) by FungLeo
  19. 【Android】实现九宫格展示图片+视频(仿QQ空间、微信朋友圈)
  20. 把款软件可以测试双显卡,如何看自己的电脑是不是双显卡?双显卡有什么好处?...

热门文章

  1. 软件外包的话居然会有这样的后果...
  2. 法兰克机械手手动操作_吸盘搬运机械手,一步解决玻璃搬运难题!
  3. springboot做网站_Github点赞接近10万的SpringBoot学习教程+实战推荐!牛批!
  4. Python+OpenCV:形态学变换
  5. 机器视觉:远心光学探秘
  6. 机器学习常见的六大错误
  7. lodop同一页面一次性打印多次
  8. 基于 vue + zhengAdmin 的一套后台模板
  9. 《敏捷可执行需求说明 Scrum提炼及实现技术》—— 3.1 运用试错法
  10. Bzoj3576 [Hnoi2014]江南乐