首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

菜鸟学绘图——手把手教你学ggplot2

最近在学ggplot2,小有心得,愣是没忍住想跟大家分享下。

要学习ggplot2,咱的思维得要大变,因为ggplot2无论是数据的输入格式还是作图的命令风格跟常规的R作图函数都有较大差别。

1、首先ggplot2的输入格式就跟咱们常见的数据有点不一样

假设我们要做个柱状图,常规R用的barplot输入格式是这个样子的一个二维矩阵,如我们要查看E1样品中Akkermansia这个菌的丰度,需要在第一行找到E1,然后在第一列找到Akkermansia,两者的交点即是我们所要找的丰度。

但是在ggplot2中,这个格式要变成这个样子

聪明的你肯定能看出来是发生了什么变化(怎么变成这样子的,其实就只需一条命令)。

同样我们要查看E1样品中Akkermansia这个菌的丰度,直接按行搜索即可(黄底)。你可以理解为,前面两列(Species 和Sample)分别是两个“坐标”,最后一列(Abundance)是其对应的值。

2 、其次是命令风格也不同,话不多说,直接看命令。

首先从百度云盘下载我们提供的示例数据(链接: https://pan.baidu.com/s/1c2WbLRU 密码: w3gt),将它放到你的R的当前工作目录,可通过在命令行输入getwd()查看你的工作目录,也可以通过下面的命令修改工作目录。

setwd("E:/R-work/ggplot2") ###修改R的工作目录,因为Spe_matrix.txt文件在此目录下

spe

spe

spe ###查看spe

###常规的barplot作图命令

par(mar=c(5,4,4,10))

barplot(spe,width=0.7,beside = TRUE,col=c("#0000ee","#9933cc","#009999","#ff0000","#ff9933"),legend=rownames(spe),args.legend = list(x="right",bty="n",inset=-0.4,cex=1))

####ggplot2作图命令

library(ggplot2)

library(reshape2)

data

colnames(data)

data ####查看转化后的数据

ggplot(data,aes(x=Sample,y=Abundance,fill=Species))+geom_bar(stat="identity",position="dodge")+ggtitle("Example")+theme()# ####ggplot()中包含的是作图的数据以及数据的映射,所谓映射简单理解就是,x、y轴分别对应哪一列数据,哪一列用来区分填充的颜色等;geom_bar()则指明作图形式,你是作要柱图还是点图;通过theme()可修改图中字体、坐标轴等元素的显示形式,此处采用默认形式。

为了作出更漂亮以及符合文章发表的图,我们需要对theme()作更精细的设置。我们对这幅图稍作分解,看theme()都可以调整哪些元素。

方框中对应的是显示的文本,紫色文字表示theme()可调整的部分元素的名称。如我们要将x和y轴以及标题字体变大,同时保证标题居中,然后给绘图区加上lightblue的背景,给legend区加上灰色背景。

ggplot(data,aes(x=Sample,y=Abundance,fill=Species))+geom_bar(stat="identity",position="dodge")+ggtitle("Example")+theme(axis.title.x=element_text(size=15),axis.title.y=element_text(size=15),plot.title=element_text(size=20,hjust=0.5),plot.background=element_rect(fill="lightblue"),legend.background=element_rect(fill="lightgrey"))

当然我们还可以修改柱子的颜色,去掉图中的灰色方格等等,这些我们会在后面介绍……

关注后获取《科研修炼手册》1、2、3、4、5。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180303G0UFBA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券