温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用R语言ggplot2画散点图

发布时间:2021-11-22 15:01:51 来源:亿速云 阅读:410 作者:柒染 栏目:大数据

如何使用R语言ggplot2画散点图,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

今天要模仿的图片来自于论文 Core gut microbial communities are maintained by beneficial interactions and strain variability in fish。期刊是 Nature microbiology

如何使用R语言ggplot2画散点图  
image.png

重复的图片是Figure2中的散点图

如何使用R语言ggplot2画散点图  
image.png
 

这个图看起来有些像折线图,是因为散点太密集了

 第一步是准备数据

数据总共三列,一列x,一列y,还有一列是文字标签,想给哪个点添加文字标签,对应就在这一行写上文字标签的内容,不想添加就是空白

需要示例数据的可以直接留言,觉得本期推文还有帮助的话可以转发支持呀!

数据格式部分截图如何使用R语言ggplot2画散点图

 读入数据

这里介绍一个相对方便一点的读入数据方式,数据按照以上格式准备好,然后全选,右击选择复制,接下来打开R语言运行如下命令

df1<-read.table("clipboard",header=T,sep="\t")
 

这样就把数据读进来存储到df1里了

 简单的散点图
ggplot(df1,aes(x=Species.Rank,y=Cumultative.relative.abundance))+
  geom_point()
 
如何使用R语言ggplot2画散点图  
image.png
 对y轴的值进行log10转化,有两种方式
  • 第一种是直接对y进行log10,如下
ggplot(df1,aes(x=Species.Rank,
               y=log10(Cumultative.relative.abundance)))+
  geom_point()
 
  • 第二种是叠加     scale_y_log10()函数
ggplot(df1,aes(x=Species.Rank,y=Cumultative.relative.abundance))+
  geom_point()+
  scale_y_log10()
 
如何使用R语言ggplot2画散点图  
image.png

这两种方法大家可以观察一下结果图

 接下来就是添加文字标签

可以使用geom_text()或者geom_label()函数,geom_label()函数默认在文字外面有一个边框

p1<-ggplot(df1,aes(x=Species.Rank,y=Cumultative.relative.abundance))+
  geom_point()+
  scale_y_log10()+
  geom_text(aes(label=text_label))
p1
 
如何使用R语言ggplot2画散点图  
image.png

如果用geom_label()函数的话是如下效果

p2<-ggplot(df1,aes(x=Species.Rank,y=Cumultative.relative.abundance))+
  geom_point()+
  scale_y_log10()+
  geom_label(aes(label=text_label))
p2
 
如何使用R语言ggplot2画散点图  
image.png

这是因为即使没有文字,geom_label()也会在对应的位置添加文字边框

 添加文字标签的时候与对应的点有些重叠,可以选择出图后手动调整,也可以选择另外一个R包ggrepel里的geom_text_repel()函数,它可以自动调整文字标签和点的位置
library(ggrepel)

ggplot(df1,aes(x=Species.Rank,y=Cumultative.relative.abundance))+
  geom_point()+
  scale_y_log10()+
  geom_text_repel(aes(label=text_label))
 
如何使用R语言ggplot2画散点图  
image.png

这样效果好像也不是太好,还是出图后手动调整吧!

 接下来是简单的美化,包括
  • 去掉灰色背景
  • 更改y轴默认的刻度分隔点,现在是100,1000,10000,三个分隔,把它改成100,10000两个分隔
ggplot(df1,aes(x=Species.Rank,y=Cumultative.relative.abundance))+
  geom_point()+
  scale_y_log10(breaks=c(100,10000),
                labels=c(100,10000))+
  geom_text_repel(aes(label=text_label))+
  theme(panel.background = element_blank(),
        axis.line = element_line())
 
如何使用R语言ggplot2画散点图

关于如何使用R语言ggplot2画散点图问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI