随笔7:R语言绘图黑白印刷风格芯片包
R语言绘图黑白印刷风格芯片包
1.基本说明
1.1本包的目标
让使用者将注意力集中在参数设定与调整上,而不是代码使用的细节,类似于一个芯片封装的过程。对几个常用的绘图函数进行了封装,并调整为印刷风格供使用者做课题或写论文参考。
1.2功能特色
设定好参数后,只需要一行代码便能绘制出印刷风格的R图像。
1.3数据说明
本包内置数据集均为随机或手动生成,输入以下命令能够看到对应绘图函数的详细说明。
help(acchist) #R语言堆积柱状图黑白印刷风格绘制
help(bonbon) #R语言棒棒图黑白印刷风格绘制
help(boxeasy) #R语言箱线图黑白印刷风格绘制
help(densline) #R语言核密度图黑白印刷风格绘制
help(easyline) #R语言简单折线图黑白印刷风格绘制
help(histeasy) #R语言柱状图图黑白印刷风格绘制
help(linepoint) #加点折线图黑白印刷风格绘制
help(pyramid) #金字塔图黑白印刷风格绘制
1.4其他说明
第一,输入实际参数所对应的概念或者说变量准确的话,会自动转换数据类型为包函数运行所需的数值或字符型,无需手动转换。
第二,本包内各绘图函数会自动判断是否安装或载入了所依赖的包,如tidyverse或grid,无需每次手动安装或载入。(标准方法是封装函数时头挂一个依赖某包的关键字,不过本包为初学时封装,所以采用了包函数内增加代码判断的做法,读者查看包内源代码时应当能注意到)
第三,人性化地内置了训练数据集,让使用者方便与自己的数据集数据结构进行比对,只要数据结构与训练数据集保持一致,就能绘制出对应的图形。
第四,添加了简单的内存释放代码,每次绘图完成后无需清理内存中产生的临时数据。
第五,为防止部分使用者因为系统问题和我一样出现渲染错误的情况,采取两次添加画布的做法,完成强制绘图,保证绘图过程顺利。
1.5特别鸣谢
来自“tidy-R语言”群的哈尔滨商业大学张敬信教授,以及Fin,无安书等群友在本包封装过程中给出的宝贵建议。
1.6申明
本包封装纯属公益性质,目前为0.1版,后面估计不会有太多时间更新。大家可以自行在本包基础上进行改装。如确有难以解决的BUG,请联系1270950448@qq.com
2.使用示例
2.1安装说明
第一次使用需从Github安装,如下:
rm(list = ls())
if (is.element('chip', installed.packages()[,1]) == FALSE)
{if(is.element('devtools', installed.packages()[,1]) == FALSE){ install.packages("devtools") library(devtools)}else if(is.element('devtools', installed.packages()[,1]) == TRUE){library(devtools)}install_github("youngyaoguai/Rdraw/chip0.1/chip")library(chip)} else if(is.element('chip', installed.packages()[,1]) == TRUE){library(chip)}
因为网络问题无法下载的请用百度网盘直接下载压缩包
链接:https://pan.baidu.com/s/1Xhu8DH4bcjw8AedRIb3Dbw
提取码:8712
2.2堆积柱状图黑白印刷风格绘制
help(acchist) #查看函数说明
data("acchist_test_data",package = "chip") #加载包内置数据集
View(acchist_test_data) #查看内置数据集结构
axis.x.title <- c("region") #x轴标题
axis.y.title <- c("ratio") #y轴标题
individual.name <- c("B","C","D","E","F") #区域名称
fill.name <- c("academic","vocational","college","high","further","primary") #要填充的名称
bar_width <- 0.3 #柱子宽度
axis.title.size <- 30 #坐标轴标题大小
axis.text.x.size <- 30 #x轴的文本显示大小
axis.text.y.size <- 30 #y轴的文本显示大小
legend.text.size <- 30 #图例的文本显示大小
legend.title.size <- 30 #图例标题大小
#调用绘图函数
acchist(acchist_test_data,acchist_test_data$region,acchist_test_data$edu,acchist_test_data$ratio)
图1 堆积柱状图黑白印刷风格绘制
2.3棒棒图黑白印刷风格绘制
help(bonbon) #查看函数说明
data("bonbon_test_data",package = "chip") #load integration sample data #载入内置数据集
View(bonbon_test_data) #查看数据结构
#要着重显示的个体(如果没有要着重显示的个体,请设置为outstanding <- c(“ ”))
outstanding <- c("wholesaleretail","Leasing and business services","realestate")
outstanding.label <- c("24.75%","28.51%","5.16%") #要着重显示的个体的数据标签,需要和outstanding一并调整
outstanding.label.size <- 7 #要着重显示的个体的数据标签大小
outstanding.size <- 4 #要着重显示的个体的棒状物大小
not.outstanding.size <- 2.3 #不需要着重显示的个体的棒状物大小
outstanding.head.size <- 7 #要着重显示的个体的棒状物圆头大小
not.outstanding.head.size <- 5 #不需要重显示的个体的棒状物圆头大小
axis.title.x.size <- 30 #x轴标题大小
axis.text.y.size <- 30 #y轴的文本大小
value.max <- 100 #样本最大值
value.break <- c(0,value.max%/%3,78,100) #要在x轴上显示的样本数值点
xlab.name <- c("ratio of service industry(%)") #x轴标题
#所有个体名称排序,会按照从左往右的顺序绘制,绘制结果为从下到上
individual.name <- c("Leasing and business services","wholesaleretail","scientificresearch","Accommodation and Catering","Informationtransmission","culture","socialwork","publicfacilities","residentsservice","financial","education","transportation","publicmanagement","realestate")
bonbon(bonbon_test_data,bonbon_test_data$industry,bonbon_test_data$index)
图2 棒棒图黑白印刷风格绘制
2.4箱线图黑白印刷风格绘制
help(boxeasy) #查看绘图函数说明
data("box_test_data",package = "chip") #载入内置数据集
View((box_test_data) #查看数据结构
ylab.name <- c("index") #y轴标题
xlab.name <- c("year") #x轴标题
axis.title.x.size <- 15 #x轴标题大小
axis.title.y.size <- 15 #y轴标题大小
axis.text.x.size <- 15 #x轴文本大小
axis.text.y.size <- 15 #y轴文本大小
#调用函数
boxeasy(box_test_data,box_test_data$year,box_test_data$index)
图3 箱线图黑白印刷风格绘制
2.5简单折线图黑白印刷风格绘制
help(easyline) #查看函数说明
data("easyline_test_data",package = "chip") #载入内置数据集
View(easyline_test_data) #查看数据结构
ylab.name <- "population" #y轴标题
xlab.name <- "age" #x轴标题
axis.title.x.size <- 25 #x轴标题大小
axis.title.y.size <- 25#y轴标题大小
axis.line.x.thickness <- 0.5 #x轴粗细
axis.line.y.thickness <- 0.5 #y轴粗细
axis.text.x.size <- 20 #x轴文本大小
axis.text.y.size <- 20 #y轴文本大小
x.start <- 0 #x轴开始数值
x.end <- 100 #x轴结束数值
x.interval <- 10 #x轴数值间隔
y.start <- 0 #y轴开始数值
y.end <- 21571 #y轴结束数值
y.interval <- 5000 #y轴数值间隔
#调用函数
easyline(easyline_test_data,easyline_test_data$population,easyline_test_data$age)
图4 简单折线图黑白印刷风格绘制
2.6核密度图黑白印刷风格绘制
help(densline) #查看说明
data("densline_test_data",package = "chip") #载入内置数据集
View(densline_test_data) #查看数据结构
yscope <- c() #第一次使用无法知道具体的范围,填空
xscope <- c() #第一次使用无法知道具体的范围,填空
#根据数据集从左往右填写
legend.name <- c("line1","line2","line3","line4","line5")
#调用函数
densline(test_data)
#根据图示大概知道数值范围,进行微调
yscope <- c(0.0004,0.00155)
xscope <- c(0,1000)
legend.name <- c("line1","line2","line3","line4","line5")
densline(densline_test_data)
图5 核密度图黑白印刷风格绘制
2.7柱状图黑白印刷风格绘制
help(histeasy) # 查看帮助
data("hist_test_data ",package = "chip") #载入内置数据集
View(hist_test_data) #查看数据结构
x.size <- 2 #x轴文本大小
y.size <- 2 #y轴文本大小
lab.size <- 2 #坐标轴标题大小
legend.x <- 30 #图例水平位置
legend.y <- 0.3 #图例垂直位置
legend.x.distance <- 0.1 #图例中图片和文本的距离
axisname.x <- c("region") #x轴标题
axisname.y <- c("ratio") #y轴标题
type.name = c("0-14","15-64","65+","immortality") #不同类别
individual.name=c("A","B","C","D","E") #不同个体
histeasy(hist_test_data,hist_test_data$region,hist_test_data$age,hist_test_data$ratio)
图6 柱状图黑白印刷风格绘制
2.8加点折线图黑白印刷风格绘制
help(linepoint)
data("line_test_data",package = "chip")
View(line_test_data) #查看内置数据集数据结构
start <- 2009 #x轴开始数值
end <- 2019 #x轴结束数值
interval <- 2 #x轴数值间隔
axis.text.x.size <- 30 #x轴文本大小
axis.text.y.size <- 30 #y轴文本大小
legend.title.size <- 30 #图例标题大小
legend.text.size <- 30 #图例文本大小
axis.title.x.size <- 30 #x轴标题大小
axis.title.y.size <- 30 #y轴标题大小
axis.line.x.size <- 0.5 #x轴粗细
axis.line.y.size <- 0.5 #y轴粗细
geom.point.size <- 7 #折线点大小
ylab.name <- c("index") #y轴标题
xlab.name <- c("year") #x轴标题
individual.name <- c("A","B","C","D","E") #个体名称
legend.name <- c("region") #图例标题
linepoint(line_test_data,line_test_data$region,line_test_data$index,line_test_data$year)
图7 加点折线图黑白印刷风格绘制
2.9金字塔图黑白印刷风格绘制
help(pyramid)
View(pyramid_test_data) #查看内置数据集数据结构
data("pyramid_test_data",package = "chip") #load integration sample data
v_max <- 4400 #样本中的最大数值
middle.size <- 6.6 #中间文本大小
left.axis.title.x.size <- 30 #左边x轴标题大小
left.axis.text.x.size <- 30 #左边x轴文本大小
right.axis.title.x.size <- 30 #右边x轴标题大小
right.axis.text.x.size <- 30 #右边x轴文本大小
right.title <- c("女") #右边x轴标题
left.title <- c("male") #左边x轴标题
pyramid(pyramid_test_data,pyramid_test_data$male,pyramid_test_data$female,pyramid_test_data$group,pyramid_test_data$group_name)
图8 金字塔图黑白印刷风格绘制
3.0绘图失败的解决办法
第一,解压缩包内绘图函数,并利用source函数加载包里绘图函数,在本地进行绘制,或者查看绘图函数本身是否有BUG。
第二,AI修图。
随笔7:R语言绘图黑白印刷风格芯片包相关推荐
- R语言绘图:28个实用程序包
本文转载自" 阿虎定量笔记",作者郑连虎,转载己获授权.其他人转载请联系原作者,点我跳转原文. 全文注释 # 示例参考帮助文档 # 我用Rstudio重现了所有示例 # 初识R语言 ...
- R语言绘图设备dev
R语言绘图设备打开: - 调用绘图函数(默认使用屏幕) => 屏幕设备显示图形 => 进一步修饰图形 - 明确指定图形设备[bmp(),tiff(),jpeg(),png()] => ...
- 收藏 | 28个R语言绘图的实用程序包!
作者:郑连虎 来源:阿虎定量笔记 本文约2500字,建议阅读20+分钟. 本文为大家介绍了关于R语言绘图方面28个实用程序包. cartogram 扭曲的地图,以传达统计信息 开发 Sebastian ...
- R语言ggplot2移除图例_读书笔记:R语言绘图—ggplot2
这次给大家带来的是R语言绘图神器-ggplot2绘图包,根据Hadley的说法,这个包的核心思想,是来源于 Leland Wilkinson<The Grammar of Graphics> ...
- R语言绘图、数据处理学习记录持续更新
目录 20220411--基础知识学习 20220412--读写操作和基本函数 20220415--循环语句学习 20220418--数据框的操作 20220419--可视化练习 20230107-- ...
- (生物信息学)R语言绘图初-中-高级——3-10分文章必备——Venn图(韦恩图)(初级)
生物信息学文章的发表要求除了思路和热点以外,图片绘制是否精美也是十分重要的,本专栏为(生物信息学)R语言绘图初-中-高级--3-10分文章必备,主要通过大量文献,总结3-10分文章中高频出现的各种图片 ...
- R语言绘图:条形图——barplot
R语言绘图:大道至简系列--barplot 目录 R语言绘图:大道至简系列--barplot 前言 一.barplot参数简介 二.barplot参数详解 1.height,main,sub 2.wi ...
- R语言绘图技巧之显示希腊字母
R语言绘图的能力非常强大,有时看似繁复的图形不过寥寥数行代码就搞定.但是其中确实有一些小技巧平时并不太容易引起注意.例如下面图中的图例部分(右上角),我们引入了一些希腊字母,这些符号是如何输入的呢? ...
- R语言绘图patchwork拼图详解快速实现组合图拼接
pdf教程下载 此文内容来自微信公众号:R语言搬运工,扫码关注公众号浏览更多精彩内容** 我们在实际科研绘图或者写报告的时候,往往会同时出多幅统计图,如何将他们拼在一起是即将或者正在面临的问题.R语言 ...
最新文章
- IOS开发笔记3-C语言基础复习
- python爬虫工程师-Python-爬虫工程师-面试总结
- 真实临床“生态”下实效性研究的挑战和意义
- linux邮件自动回复,debian上 postfix+dovecot+squirrelmail 实现 自动回复
- Java基础篇:static关键字
- Spark-on-YARN (来自学习笔记)
- 【转载】COM 组件设计与应用(四)——简单调用组件
- 【自然框架之SSO】实现SSO的一个初步想法
- swf获取当前页面的路径
- 最全Pycharm教程
- Java 集合中存在多种数据类型
- android常用网址
- 有限自动机与有限状态机
- python ctypes struct_Python之ctypes
- java程序运行过程数据丢失怎么办_java运行过程中OutOfMemoryError是什么原因?怎么解决...
- Ubuntu服务启动脚本
- [2018.10.15 T3] 数列
- java中jdk api等概念的解释
- 计算机专业考研是英语几,计算机考研考英语一还是英语二
- python批量删除行_听说用python来批量删除说说也挺快乐的呢~