今天,小编想跟大家分享一下如何用我们自己的数据绘制带有误差线的柱状图。首先,放一张图吧!

这是小编自己编造的一组数据绘制而成的,主要想介绍给小伙伴们方法。

准备:第一次需要安装ggplot2和相关包,我们打开Rstudio,在交互界面输入install.packages("ggplot2"),选择相应的国内镜像站点。安装好后,以后使用就不需要再安装了。

接下来,我们键入代码library(ggplot2),这一步的操作是载入ggplot2这个包(也可以理解为调用), 因为小编想要演示用自己的excel数据来绘图,所以这里我们还要载入一个读取excel的包,在交互界面输入library(readxl)

接著我们就导入数据,小编准备了一个excel的数据,放在了桌面,内容如下

现在我们就通过代码导入R中,sample <- read_excel("C:\Users\Administrator\Desktop\示例.xlsx") ,其中sample是小编创建的变数,后面是一个导入函数,括弧里是文件路径。

接下来我们就开始准备数据了,在交互界面输入以下代码sample_long = with(sample,

rbind( data.frame( lesion=group, stimulus= "test1", lat=test1, sem=sd ),

data.frame( lesion=group, stimulus= "test2", lat=test2, sem=sd) )

)

sample_long$lesion=factor(sample_long$lesion, levels=unique(sample_long$lesion))

这里小编再次命名了一个变数sample_long,并为其赋值。这里的with可以理解为sample_long的取值是在变数sample中, rbind可以理解为将两组取值连接起来赋予sample_long。在括弧中又引入了四个变数,分别是lesion、stimulus、lat、sem,除了stimulus取值为字元串,其余都是excel表格中的相应的列,代表取那一列的值。sample_long$lesion可以理解为这个变数名代表著sample_long中的lesion,后面的factor可以简单理解为限制取值范围,level也是类似作用,限定取值水平。

数据准备好后,我们开始绘图。代码如下

figure <- ggplot(data = sample_long, aes(x=lesion, y=lat, fill=stimulus) ) +

geom_errorbar(aes(ymin=lat, ymax=lat+sem, width = 0.2),position=position_dodge(width_=0.90)) +

geom_bar(stat="identity", position="dodge") +

geom_bar(stat="identity", position="dodge", colour="black") +

scale_fill_manual(values=c("grey80", "blue")) +

xlab("实验分组") +

scale_y_continuous("数据测量值", expand=c(0,0), limits = c(0, 5.5)) +

theme_bw() +

labs(title="示例:带误差柱状图")+

theme(

panel.grid.major = element_blank(),

panel.grid.minor = element_blank(),

panel.border = element_blank(),

axis.line=element_line(colour="black"),

axis.text.y=element_text(angle=90, hjust=0.5),

legend.position = "left",

plot.title = element_text(hjust=0.5),

legend.key = element_rect()

)

print(figure)

这里简单说说每一行代码的含义,figure是一个变数,看过前几期文章的小伙伴们应该都知道了。

ggplot(data = sample_long, aes(x=lesion, y=lat, fill=stimulus) )是对ggplot绘图函数相关参数设置,data是指使用变数sample_long中的数据,aes(x=lesion, y=lat, fill=stimulus)中aes全称是aesthetics,怎么来理解呢?小编认为可以简单理解为布局,通过对元素的设置来达到让图形更好看,其中x和y指x轴和y轴,fill可以理解为字面意思「填充」,主要体现在图例的标识上。

+号可以理解为一个连接符。geom_errorbar(aes(ymin=lat, ymax=lat+sem, width = 0.2),position=position_dodge(width_=0.90))这行代码是对误差线的设置,ymin指y轴上最小值,ymax指y轴上最大值。Width指横向宽度,position就是指位置了。geom_bar(stat="identity", position="dodge") +

geom_bar(stat="identity", position="dodge", colour="black")这里两行代码合在一起讲,指图中的条形图参数。stat="identity"可以简单理解为图形具有同一性,position="dodge"可以理解为图形不重叠

scale_fill_manual(values=c("grey80", "blue"))这是对两种图颜色填充,我们可以按需求更改。xlab("实验分组")是x轴的标题,scale_y_continuous("数据测量值", expand=c(0,0), limits = c(0, 5.5))是y轴题目和刻度设置。theme_bw()是一类主题风格,labs(title="示例:带误差柱状图")是最上面的标题。theme(

panel.grid.major = element_blank(),

panel.grid.minor = element_blank(),

panel.border = element_blank(),

axis.line=element_line(colour="black"),

axis.text.y=element_text(angle=90, hjust=0.5),

legend.position = "left",

plot.title = element_text(hjust=0.5),

legend.key = element_rect()

)是相关参数的设置,panel.grid.major = element_blank(),

panel.grid.minor = element_blank()是网格线,我们去掉两行代码绘制的图如下

panel.border = element_blank()是指边框。axis.line=element_line(colour="black")指轴线颜色。legend.position = "left"图例位置,plot.title = element_text(hjust=0.5)标题居中。legend.key = element_rect()是什么意思呢?哈哈,小编不说。小伙伴们感兴趣自行研究,提个醒,和图例相关。

好了,今天分享就到这里.

推荐阅读:

相关文章