欢迎光临散文网 会员登陆 & 注册

绘制简单条形图/SCI论文/科研/研究生/生信分析热点思路

2023-01-03 09:30 作者:尔云间  | 我要投稿

   

绘制条形图最普通的画法是直接用系统自带函数barplot(),下方示例我们加载的是R的自带包iris,图中展示的是不同宽度花萼鸢尾花的频数分布。

attach(iris)

table(iris$Sepal.Length)

table(iris$Sepal.Width)

table(iris$Species)

barplot(table(iris$Sepal.Width))

    但有时我们希望得到水平条形图,还记得上次我们说的颜色函数rainbow吗?做一个彩色的水平柱状图吧。参数horiz是控制柱状图方向的函数,记得不要把横纵坐标名字设置错了。

n<-length(table (iris$Sepal.Width))

barplot(table(iris$Sepal.Width),

        xlab='count',ylab='Sepal.Width',

        horiz = TRUE,col = rainbow(n))

绘制柱状图的方法有多种,几乎每种绘图工具都有绘制柱状图的功能,掌握好一两种就够。我们不需要同时掌握过多相同功能是的工具,而应但把目光放在实现更多功能上。比如柱状图有一种升级版本叫做帕累托图,很多人就没做过。

x<-sort(table(iris$Sepal.Width),decreasing = T)

color=RColorBrewer::brewer.pal(23,'Set3')

#按照频数多少对数据排序

par(mai=c(0.7,0.7,0.2,0.7),cex=0.7)

bar<-barplot(x,xlab = 'Sepal.Width',

             ylab ='count',col = color,

             ylim = c(0,30))

text(bar,x,labels=x,pos=3,col='black')

y<-cumsum(x)/sum(x)

par(new=T)

plot(y,type = 'b',pch=15,axes = F,

     xlab = '',ylab = '',main = '')

axis(side = 4)

mtext('Cumulative frequency',

      side = 4,line = 3,cex = 0.8)

text(labels='Cumulative distribution curve',

     x=10,y=0.92,cex=1.3)

 

首先我们给各个宽度的花萼按照数量进行排序得到x

 

然后就是用颜色函数快速提取23种颜色,为什么我会知道是23种呢?用length数一下就知道了。

还需要用par函数控制一下图片右侧的留白,因为我们要加新的坐标轴,默认的设置不够坐标轴加标签。

然后就可以用barplot作图了

text可以给barplot出的图加标签

cumsum这个函数有的人可能没见过,就是计算每组频数的累加,试一下就知道了我们用有来制作曲线

par(new=T)就是在原来的图片上继续画图,plot大家应该都会

axis可以多加一条刻度,就是最右边的那条,mtext给刻度加标签

随后我们再次用到了text,根据实际情况调一下位置就好


绘制简单条形图/SCI论文/科研/研究生/生信分析热点思路的评论 (共 条)

分享到微博请遵守国家法律