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语言绘图黑白印刷风格芯片包相关推荐

  1. R语言绘图:28个实用程序包

    本文转载自" 阿虎定量笔记",作者郑连虎,转载己获授权.其他人转载请联系原作者,点我跳转原文. 全文注释 # 示例参考帮助文档 # 我用Rstudio重现了所有示例 # 初识R语言 ...

  2. R语言绘图设备dev

    R语言绘图设备打开: - 调用绘图函数(默认使用屏幕) => 屏幕设备显示图形 => 进一步修饰图形 - 明确指定图形设备[bmp(),tiff(),jpeg(),png()] => ...

  3. 收藏 | 28个R语言绘图的实用程序包!

    作者:郑连虎 来源:阿虎定量笔记 本文约2500字,建议阅读20+分钟. 本文为大家介绍了关于R语言绘图方面28个实用程序包. cartogram 扭曲的地图,以传达统计信息 开发 Sebastian ...

  4. R语言ggplot2移除图例_读书笔记:R语言绘图—ggplot2

    这次给大家带来的是R语言绘图神器-ggplot2绘图包,根据Hadley的说法,这个包的核心思想,是来源于 Leland Wilkinson<The Grammar of Graphics> ...

  5. R语言绘图、数据处理学习记录持续更新

    目录 20220411--基础知识学习 20220412--读写操作和基本函数 20220415--循环语句学习 20220418--数据框的操作 20220419--可视化练习 20230107-- ...

  6. (生物信息学)R语言绘图初-中-高级——3-10分文章必备——Venn图(韦恩图)(初级)

    生物信息学文章的发表要求除了思路和热点以外,图片绘制是否精美也是十分重要的,本专栏为(生物信息学)R语言绘图初-中-高级--3-10分文章必备,主要通过大量文献,总结3-10分文章中高频出现的各种图片 ...

  7. R语言绘图:条形图——barplot

    R语言绘图:大道至简系列--barplot 目录 R语言绘图:大道至简系列--barplot 前言 一.barplot参数简介 二.barplot参数详解 1.height,main,sub 2.wi ...

  8. R语言绘图技巧之显示希腊字母

    R语言绘图的能力非常强大,有时看似繁复的图形不过寥寥数行代码就搞定.但是其中确实有一些小技巧平时并不太容易引起注意.例如下面图中的图例部分(右上角),我们引入了一些希腊字母,这些符号是如何输入的呢? ...

  9. R语言绘图patchwork拼图详解快速实现组合图拼接

    pdf教程下载 此文内容来自微信公众号:R语言搬运工,扫码关注公众号浏览更多精彩内容** 我们在实际科研绘图或者写报告的时候,往往会同时出多幅统计图,如何将他们拼在一起是即将或者正在面临的问题.R语言 ...

最新文章

  1. IOS开发笔记3-C语言基础复习
  2. python爬虫工程师-Python-爬虫工程师-面试总结
  3. 真实临床“生态”下实效性研究的挑战和意义
  4. linux邮件自动回复,debian上 postfix+dovecot+squirrelmail 实现 自动回复
  5. Java基础篇:static关键字
  6. Spark-on-YARN (来自学习笔记)
  7. 【转载】COM 组件设计与应用(四)——简单调用组件
  8. 【自然框架之SSO】实现SSO的一个初步想法
  9. swf获取当前页面的路径
  10. 最全Pycharm教程
  11. Java 集合中存在多种数据类型
  12. android常用网址
  13. 有限自动机与有限状态机
  14. python ctypes struct_Python之ctypes
  15. java程序运行过程数据丢失怎么办_java运行过程中OutOfMemoryError是什么原因?怎么解决...
  16. Ubuntu服务启动脚本
  17. [2018.10.15 T3] 数列
  18. java中jdk api等概念的解释
  19. 计算机专业考研是英语几,计算机考研考英语一还是英语二
  20. python批量删除行_听说用python来批量删除说说也挺快乐的呢~

热门文章

  1. 硬件电路设计-FPGA(EP4CE6)最小系统
  2. Diebold-Mariano检验
  3. JS---event事件
  4. 每日格言积累及总结——更新中
  5. Android Kotlin + 协程 + Retrofit + MVVM优雅的实现网络请求(简洁!!!!)
  6. 试题 算法训练 黑色星期五
  7. linux usb驱动——OTG数据线与普通数据线区别
  8. 强类型c语言 类型
  9. 鉴于近期的自然灾害,WorldRemit免收向菲律宾汇款的费用
  10. css 取偶数节点_css3 nth 选择器