r语言 index_基于R语言绘制BBC风格图表
作者:吴健 中国科学院大学 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风格图表相关推荐
- 教务处管理系统c语言编程,基于C语言的教务管理系统的设计
基于C语言的教务管理系统的设计(任务书,开题报告,论文12000字,程序代码) 摘要 教务管理系统是现代化教育的重要组成部分,在现代高校管理中,一个高效的.准确的教务系统不仅能大大提高教学管理效率,还 ...
- 将 改为c语言表达式,基于c语言表达式求解课程设计修改.doc
基于c语言表达式求解课程设计修改 摘 要 通过数据结构这门课程,我们较深入的了解到了栈,栈是一种重要的线性结构,它广泛应用于各种软件系统中,因此在面向对象的程序设计中,它们是多型数据类型. 本次试验我 ...
- 学校图书管理系统基于c语言源代码,基于C语言的学校图书管理系统参考.doc
基于C语言的学校图书管理系统参考 本科学生毕业论文(设计) 题目(中 文):基于C语言的学校图书管理系统(英 文):School Library Management System Based on ...
- 步进电机循环脉冲c语言程序,基于C语言的步进电机调速.doc
课 程 设 计 (论文) 题目 基于C语言的步进电机调速 目 录 0. 前言3 1.基本理论4 2. 方案设计4 2.1 步进电机5 2.2 8255芯片5 3. 硬件电路的工作原理5 3.1 步进电 ...
- 两小灯同亮同灭c语言程序,基于C语言与Proteus联合仿真的单片机技术最新章节_何波,丘利丽著_掌阅小说网...
前言 随着嵌入式技术的飞速发展,嵌入式系统产品正不断渗透到各行各业,如智能家居.车载电子设备等.因此,单片机技术作为嵌入式计算机控制系统的重要技术,已经越来越受到各个应用领域的重视,尤其对于直接面向企 ...
- 火车售票系统c语言编程,基于C语言实现简单的12306火车售票系统.pdf
基基于于C语语言言实实现现简简单单的的12306火火车车售售票票系系统统 程序设计要求用C语言写一个简单的火车售票系统,主要实现的功能为: 入班次信息 浏览班次信息 按班次号查询 按终点站查询 按余票 ...
- 学生管理系统c#语言代码,基于C#语言的学生管理系统的设计(ASP.NET2.0)
摘 要 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用.学生管理系统是学校管理中不可少的一部分.而基于B/S架构的学生管 ...
- libvirt 用c语言编译,基于C语言libvirt API简单小程序
libvirt API简单小程序 1.程序代码如下 #include #include int getDomainInfo(int id) { virConnectPtr conn = NULL; v ...
- qt扫雷鼠标c语言中文网,基于C语言实现的扫雷游戏代码
/* 模拟扫雷游戏 */ #include #include #include #include #include #include #include union REGS regs; int siz ...
最新文章
- 计算机网络知到马惜平答案,计算机网络实习用Dreamweaver搭建个人网站
- 云栖2050 —— 面向年青人的科技公益大会
- 【C 语言】文件操作 ( 配置文件读写 | 框架搭建 | 写出或更新配置文件 | 读取配置文件 )
- 设计模式-Observer模式
- 3行代码给你的python提速4倍!
- xstream不映射字段_Mybatis_day03:输入映射和输出映射
- [转]Web Api系列教程第2季(OData篇)(二)——使用Web Api创建只读的OData服务
- DataReader对象的基本使用 c#
- 学习笔记-工业相机与普通相机优劣利弊
- 陀螺仪指向的是什么方向
- Excel数据转换成SQL
- ABAQUS单位统一
- [Python3网络爬虫开发实战] Appium 爬取微信朋友圈
- 我在使用Next.js, Antd, @zeit/next-css时遇到的一些问题
- 快递100接口使用整理
- java程序模拟手机
- 9.目标检测基础、图像风格迁移
- WEB应用图片的格式,以及各自的特点和优化(一) by FungLeo
- 【Android】实现九宫格展示图片+视频(仿QQ空间、微信朋友圈)
- 把款软件可以测试双显卡,如何看自己的电脑是不是双显卡?双显卡有什么好处?...
热门文章
- 软件外包的话居然会有这样的后果...
- 法兰克机械手手动操作_吸盘搬运机械手,一步解决玻璃搬运难题!
- springboot做网站_Github点赞接近10万的SpringBoot学习教程+实战推荐!牛批!
- Python+OpenCV:形态学变换
- 机器视觉:远心光学探秘
- 机器学习常见的六大错误
- lodop同一页面一次性打印多次
- 基于 vue + zhengAdmin 的一套后台模板
- 《敏捷可执行需求说明 Scrum提炼及实现技术》—— 3.1 运用试错法
- Bzoj3576 [Hnoi2014]江南乐