R语言绘制金字塔图

在这里插入图片描述

R语言绘制金字塔图

首先我们要知道金字塔图典型的是人口金字塔图,人口金字塔是用类似古埃及金字塔的形象描绘人口年龄和性别分布状况的图形,能表明人口现状及其发展类型。当有类似的信息需要表达时,即可用金字塔图来呈现。以下有两种绘图方法,可供参考哦~

PART01

1.导入plotrix包

library(plotrix)

2.构建示例数据

m.pop <- runif(18,0,4)
f.pop <- runif(18,0,4)

3.分组

agelabels<-c("0-4","5-9","10-14","15-19","20-24","25-29","30-34",
             "35-39","40-44","45-49","50-54","55-59","60-64",
             "65-69","70-74","75-79","80-44","85+")

4.颜色区分

mcol <- color.gradient(c(1,0,0.4,2),c(0,1,0.4,2),c(1,1,0.4,1),18)
fcol <- color.gradient(c(1,1,0.5,1),c(1,1,0.5,1),c(1,0.5,0.6,1),18)

5.查看构建示例数据前六行

head(m.pop)
head(f.pop)
head(agelabels)
head(mcol)
head(fcol)

在这里插入图片描述

6.使用pyramid.plot函数绘制人口金字塔图

par(mar=pyramid.plot(xy.pop,xx.pop,labels=agelabels,
                     main="Australian population pyramid 2002",
                     lxcol=mcol,rxcol=fcol,gap=0.5,show.values=TRUE))

在这里插入图片描述

PART02

1.构建数据

library(plotrix)
avtemp<-c(seq(11,2,by=-1),rep(2:6,each=2),seq(11,2,by=-1))
malecook<-matrix(avtemp+sample(-2:2,30,TRUE),ncol=3)
femalecook<-matrix(avtemp+sample(-2:2,30,TRUE),ncol=3)

2.按年龄分组

agegrps<-c("0-10","11-20","21-30","31-40","41-50","51-60",
           "61-70","71-80","81-90","91+")

3.查看构建数据的前六行

head(malecook)

在这里插入图片描述

head(femalecook)

在这里插入图片描述

head(agegrps)

在这里插入图片描述

4.使用pyramid.plot函数绘制人口金字塔图

oldmar<-pyramid.plot(malecook,femalecook,labels=agegrps,
                     unit="Bowls per month",
                     lxcol=c("#ff0000","#eeee88","#0000ff"),
                     rxcol=c("#ff0000","#eeee88","#0000ff"),
                     laxlab=c(0,10,20,30),
                     raxlab=c(0,10,20,30),
                     top.labels=c("Males","Age","Females"),
                     gap=4,
                     do.first="plot_bg(\"#eedd55\")")

在这里插入图片描述

5.添加标题

mtext("Porridge temperature by age and sex of bear",3,2,cex=1.5)

在这里插入图片描述

6.添加注释信息

legend(par("usr")[1],11,legend = c("Too hot","Just right","Too cold"),fill=c("#ff0000","#eeee88","#0000ff"))

在这里插入图片描述

7.为添加的注释信息添加图形的空白边界行数和背景颜色(想要查看到图形变化需要再运行一下注释信息)

par(mar=oldmar,bg="white")

在这里插入图片描述

以上就是关于金字塔图的画法分享啦!如果对生信绘图感兴趣的小伙伴可添加"小图"进入图图的“生信作图交流群”,图图期待你们的加入!

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weifanbio/article/details/120432997