R语言ggplot2绘制带有底纹的柱形图~patternplot扩展包

2021-07-30 10:46:10 浏览数 (3)

做柱形图的时候如果要区分不同的类别 最直观的方式就是用不同的颜色,但是有的期刊如果要求黑白灰配色的话,用颜色可能就不太好区分,这个时候可以用添加底纹的形式。R语言的ggplot2包没有提供直接绘制带有底纹的柱形图的函数,如果想要实现需要借助扩展包patternplot,参考链接 https://cran.r-project.org/web/packages/patternplot/vignettes/patternplot-intro.html

下面介绍几个简单小例子

第一次使用这个包需要安装,直接运行install.packages("patternplot")命令进行安装

第一个是普通的柱形图

示例数据

画图代码

代码语言:javascript复制
library(patternplot)
library(readxl)
library(ggplot2)
df1<-read_excel("patternplot/patternplot_example.xlsx",
                sheet = "Sheet1")
df1

patternbar(df1,x,y,
           density = c(10,10,10),
           pattern.type = c('hdashes', 'blank', 'crosshatch')) 
  scale_y_continuous(expand = c(0,0),
                     limits = c(0,15))

这里画图函数是patternbar()必须的参数

  • 数据集
  • 代表x轴的变量名
  • 代表y轴的变量
  • density是底纹的密度
  • pattern.type是底纹的类型

通过 ?patternbar 命令查看帮助文档 ,底纹的类型有a vector of patterns to be filled in the bars The pattern types include: 'blank', 'bricks', 'vdashes', 'hdashes', 'crosshatch','dots', 'grid','hlines','nelines', 'nwlines', 'vlines', 'waves' and more.

画个图会更直观

代码语言:javascript复制
df<-data.frame(x=LETTERS[1:10],y=1:10)
df
pattern_type<-c('blank', 'bricks', 'vdashes', 
                'hdashes', 'crosshatch','hlines',
                'nelines', 'nwlines', 'vlines','waves')
a<-factor(df$x)
b<-df$y
patternbar(df,a,b,
           density = rep(10,10),
           pattern.type = pattern_type) 
  scale_y_continuous(expand = c(0,0),
                     limits = c(0,12))

这里还有一个类型是 dots,如果用这个类型会遇到报错Error in readPNG(paste(location, "/", pattern.type[i], ".png", sep = "")) : unable to open C:/Users/pome/AppData/Local/Temp/Rtmp2Lr3pm/dots.png 暂时不知道是什么原因

簇状柱形图重复的时候一直遇到报错 暂时还不知道如何解决 今天的内容先到这里了

1 人点赞