侧边栏壁纸
  • 累计撰写 51 篇文章
  • 累计创建 1 个标签
  • 累计收到 3 条评论
标签搜索

目 录CONTENT

文章目录

R语言绘图 - 饼图01

食用菌精准育种实验室-实验宝典
2024-02-17 / 0 评论 / 0 点赞 / 126 阅读 / 1,053 字

原创内容,欢迎转载,转载请注明出处


主笔:于浩


一、R语言软件安装

1、系统和软件参考:R语言绘图基础
2、下载Demo数据,点击文章底部的“下载demo数据”下载demo数据和R脚本。


二、数据和脚本准备

R语言绘图就跟生物信息学的常规分析一样,主要就是数据格式的整理,脚本中参数的修改。数据整理好了,参数修改对了,直接运行就可以得到自己想要的结果。

1、将demo数据解压缩到D盘根目录的“R-Plot”文件夹下。
2、将绘图数据按照demo数据的格式填写到“input_table.csv”文件中,这里数据比较简单,其实就2列数据有用,value里面放上每组数据的具体的数值是多少,另一列里面放上顺序。


三、运行R脚本进行绘图

1、数据整理

下图就是数据格式,不要修改列明,否则在脚本中也要修改参数,直接把每一部分的值输入到value这一列,order这一列从小到大编写就行。

QQ截图20240217203739.png

2、双击R脚本“PiePlot.R”,用RStudio打开脚本。

3、根据原始数据修改脚本,基本上没有什么要修改的参数,有些参数完全可以在其他的软件例如AI中修改,下面是代码。

library(ggplot2)
library(dplyr)

# 导入数据

df <-read.table("D:\\R-Plot\\input_table.csv", header=T,sep=",") 


# 绘图模式 1

# 这里需要注意的是x的内容应该是'',不能用x=x。
ggplot(data=df, mapping=aes(x='', y=value, fill=order))+ 
  # stat选择'identity'是为了使用y值作为具体的条形图高度值,stack是指模式为堆叠式条形图。
  geom_bar(stat='identity', position='stack',color="white")+
  # 改变坐标系,按照顺时针顺序来填充,从0开始
  coord_polar(theta = 'y', start=0, direction=-1)+
  # 自定义每个区块的颜色
  scale_fill_manual(values = c("#74A9CF",  "#dd0077", "#D0D1E6", "#FFF7FB","#0570B0"))+  
  # 去掉title,x和y轴的标题
  labs(x = '', y = '', title = '')+ 
  # 去掉内部的文本
  theme(axis.text = element_blank())+
  # 去掉边上的刻度线
  theme(axis.ticks = element_blank())+
  # 去掉背景和网格线
  theme(panel.grid =element_blank(), panel.background = element_blank())


# 绘图模式 2

hsize <-2                     # 环形图一共有几圈(调整这个参数可以调整环的厚薄)
df <- df %>% mutate(x = hsize)   # 在数据的最外侧添加一列,列名为x,数值为 hsize

ggplot(df, aes(x = hsize, y = value, fill = order)) +
		geom_col() +
  		geom_text(aes(label = value), position = position_stack(vjust = 0.5)) +  # 这个就是两个堆叠柱形图,第一个柱形图的高度为0
  		coord_polar(theta = "y") +                                               # 把两个柱形图的柱子给卷起来,用极坐标方式表示。
      scale_fill_manual(values = c("#74A9CF",  "#dd0077", "#D0D1E6", "#FFF7FB","#0570B0"))+  # 自定义每个区块的颜色
  		xlim(c(0.2, hsize + 0.5))




# 绘图模式 3 (没有坐标系)

hsize <-2                     # 环形图一共有几圈(调整这个参数可以调整环的厚薄)
df <- df %>% mutate(x = hsize)   # 在数据的最外侧添加一列,列名为x,数值为 hsize

ggplot(df, aes(x = hsize, y = value, fill = order))+
  		geom_col(color = "black")+          # 外框的颜色  	
  		geom_text(aes(label = value),                  
            	position = position_stack(vjust = 0.5))+   
  		coord_polar(theta = "y")+           # 转换为极坐标,这是变成饼图的关键
   		scale_fill_manual(values = c("#74A9CF",  "#dd0077", "#D0D1E6", "#FFF7FB","#0570B0"))+  # 自定义每个区块的颜色
  		xlim(c(0.2, hsize + 0.5))+
  		theme(panel.background = element_rect(fill = "white"),   # 主题设置,这里是设置背景为白色,没有网格
		        panel.grid = element_blank(),
		        axis.title = element_blank(),
		        axis.ticks = element_blank(),
		        axis.text = element_blank())

demo数据结果如下:数据另存为emf格式,用AI或者CDR来进行修改。

QQ截图20240217203508.png

QQ截图20240217203527.png

QQ截图20240217203543.png

0

评论区