R语言|lollipop plot

2022-04-26  本文已影响0人  维凡生物

ggpubr****包****绘制lollipop

小编今天给大家分享的是ggpubr包绘制lollipop图相关方法。棒棒糖图(lollipop chart),其实就是一个垂线图,棒棒糖图传达了与柱形图或者条形图相同的信息,只是将矩形转变成线条,这样可减少展示空间,重点放在数据点上,从而看起来更加简洁、美观。相对柱形图与条形图,棒棒糖图更加适合数据量比较多的情况。

画图示例

#安装包
#示例数据
#链接:https://pan.baidu.com/s/1UkPToa79jv7DhaY8cHqRUg  提取码:r56h 
#install.packages("ggplot2")
#install.packages("ggpubr")
#加载包
library(ggplot2)
library(ggpubr) 
#输入文件
inputFile="input_2.txt"
#输出文件 
outFile="Lollipop.pdf"
outFile1="Lollipop1.pdf" 
#查看工作目录getwd()
#设置工作目录 
setwd("C:\\Users\\admin\\Documents\\RStudio\\30.Lollipop") 
#读取输入文件数据
rt=read.table(inputFile,header=T,sep="\t",check.names=F) 
#输入文件需要有三列信息
#ONTOLOGY: GO分类
#Term: GO名称
#Count: 富集在每个GO上的数目
#输入文件数据展示
image.png
#绘制Lollipop图
pdf(file=outFile,width=7,height=6)  #设置输出文件的格式
#ggplot2包绘制
ggplot(rt,aes(x=Term,y=Count))+
  geom_hline(yintercept = 0,color="grey",size=1)+   #设置横坐标的坐标系位置,颜色,大小
  geom_point(aes(color=ONTOLOGY),size=2)+   #设置点的大小
  geom_bar(aes(file=ONTOLOGY),stat="identity",width = 0.2)+   #设置柱子的粗细
  theme_bw(base_family = "Times")+
  theme(panel.grid.minor = element_blank(),   #消除横条的背景线
        panel.grid.major.x=element_blank(),   #消除竖条的背景线
        axis.text.x=element_text(angle = 90), #设置横坐标图例旋转角度
        legend.position = "None",
        panel.border = element_blank())+
labs(x="Count",y="Term",colour="",linetype="",file="")
dev.off()
image.png
#ggpubr包绘制
pdf(file=outFile1,width=7,height=6)
ggdotchart(rt, x="Term", y="Count", color = "ONTOLOGY",group = "ONTOLOGY", #ggpubr包中ggdotchart()函数绘制
          palette = "aaas",         #配色方案
          legend = "right",         #图例位置
          sorting = "descending",   #上升排序,区别于desc
          add = "segments",         #增加线段
          dot.size = 5,             #设置圆圈大小
          label = round(rt$Count),  #圆圈内数值
          font.label = list(color="white",size=9, vjust=0.5),   #圆圈内数值字体,颜色设置
          rotate = T,               #横向显示,设置为rotate=F便是纵向显示
          ggtheme = theme_pubr())
dev.off()
image.png

END

图图云平台-永久免费绘图工具
https://www.cloudtutu.com/

上一篇下一篇

猜你喜欢

热点阅读