如何使用R语言ggplot2画散点图
如何使用R语言ggplot2画散点图,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
创新互联公司自2013年创立以来,是专业互联网技术服务公司,拥有项目成都网站设计、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元水富做网站,已为上家服务,为水富各地企业和个人服务,联系电话:13518219792
今天要模仿的图片来自于论文 Core gut microbial communities are maintained by beneficial interactions and strain variability in fish。期刊是 Nature microbiology
重复的图片是Figure2中的散点图
这个图看起来有些像折线图,是因为散点太密集了
数据总共三列,一列x,一列y,还有一列是文字标签,想给哪个点添加文字标签,对应就在这一行写上文字标签的内容,不想添加就是空白
需要示例数据的可以直接留言,觉得本期推文还有帮助的话可以转发支持呀!
数据格式部分截图
这里介绍一个相对方便一点的读入数据方式,数据按照以上格式准备好,然后全选,右击选择复制,接下来打开R语言运行如下命令
df1<-read.table("clipboard",header=T,sep="\t")
这样就把数据读进来存储到df1里了
ggplot(df1,aes(x=Species.Rank,y=Cumultative.relative.abundance))+
geom_point()
- 第一种是直接对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()
这两种方法大家可以观察一下结果图
可以使用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
如果用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
这是因为即使没有文字,geom_label()
也会在对应的位置添加文字边框
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))
这样效果好像也不是太好,还是出图后手动调整吧!
- 去掉灰色背景
- 更改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画散点图
文章URL:http://pwwzsj.com/article/isgjhs.html