加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

【T】ggplot—散点图(geom_point)

(2014-12-15 23:58:50)
标签:

geom_point

分类: R
该博文已整理到新地址:http://qinqianshan.com/ggplot-散点图geom-point/
注:因为sina博客无法显示很长的命令,下面的命令都是用个空格切割的额,有的地方会报错,你去掉空格即可

数据集

seqs      WS_bac            DSZ_bac           DSZ_arc            WS_arc

10                                       4.35505

20         9.60793            9.61334            5.25596            5.84429

30         16.5786            16.6393            6.84235            6.75812

40         22.6062            22.7745            7.92324            7.45446

50         28.0227            28.3326            8.79244            8.05028

60         33.0079            33.4752            9.5462               8.58972

70         37.6698            38.2964            10.2294            9.0914

……

根据上面的数据,以seqs为横坐标,其他四列为纵坐标做出散点图。

 

1,数据读取(上面的数据中有的为NA,)

ni<-read.csv("稀释性曲线.txt",header=T,sep="\t")

 

2,数据变形

library(reshape2)

agcd<-melt(ni,id.vars="seqs",value.name="value",variable.name="bq");

 

3,作图

library(ggplot2)

ggplot(agcd,aes(seqs,value))+geom_point()

【T】ggplot—散点图(geom_point)

 

这个初步的图做出来后有四点不满意

1,点太多区分度不够好;

2,每条线没有图注;

3,背景不好看;

4,横纵坐标;

 

1,点太多区分度不够好

提取数据的奇数行,减少数据集

nii<-ni[seq(1,nrow(ni),2),]

重新数据变形

library(reshape2);

library(ggplot2);

agcd<-melt(nii,id.vars="seqs",value.name="value",variable.name="bq");

 

2加上图注

p<-ggplot(agcd,aes(seqs,value))+geom_point()

p1<-p+aes(shape=bq)+scale_shape_manual(values=c(1,2,6,23))

p1

 

3,去掉背景

p2<-p1+theme(panel.background=element_blank(),panel.grid.minor=element_blank(),

axis.line=element_line(size=0.5),legend.title=element_blank());

p2

 

4,Legend放大

library(grid);

p3<-p2+theme(legend.title=element_blank())+theme(legend.key.size=unit(2,'cm'),

legend.text = element_text(size = 10, hjust = 3, vjust = 3, face = 'bold'));

p3

 

5,横纵坐标轴变大,同时加上合适字体的横纵坐标的主题

p4<-p3+theme(axis.text.x=element_text(size=15,colour="black"),axis.text.y=element_text(size=15,

colour="black"))+xlab("序列数  Sequences quantity")+ylab("OTU个数  OTU quantity")+theme(axis.title.x=element_text(size=15),axis.title.y=element_text(size=15));

p4

 

 

整个的流程为:

1,生成数据部分

ni<-read.csv("稀释性曲线.txt",header=T,sep="\t");

nii<-ni[seq(1,nrow(ni),2),];

library(reshape2);

agcd<-melt(nii,id.vars="seqs",value.name="value",variable.name="bq");

library(ggplot2);

 

2,作图部分

有两个命令可供参考,一个就是按照上面的流程修改了参数的大小值,另一个是没有修改大小的。选用如下的哪个命令,取决你出图的方式,是否用tiff ,还是自带的出图方式。我个人感觉tiff出来的图清晰度还是要高一些的啊,但我更倾向于直接用Rstudio的粘贴复制。

因为tiff文件没法上传到该博客,也就没法比较图片的清晰度,这里就省略了

命令1:(修改大小)

library(grid);

ggplot(agcd,aes(seqs,value))+geom_point()+aes(shape=bq)+scale_shape_manual(values=c(1,19,3,6))

+theme(panel.background=element_blank(),panel.grid.minor=element_blank(),

axis.line=element_line(size=0.5),legend.title=element_blank())+theme(legend.key.size=unit(2,'cm'),

legend.text = element_text(size = 10, hjust = 3, vjust = 3, face = 'bold'))+theme(axis.text.x=element_text(size=15,colour="black"),axis.text.y=element_text(size=15,

colour="black"))+xlab("序列数  Sequences quantity")+ylab("OTU个数  OTU quantity")+theme(axis.title.x=element_text(size=15),axis.title.y=element_text(size=15));

#通过命令1,我发现生成的tif图形有问题,如果是要加tif命令来生成图形的话,就不应该修改图上各个参数的大小值,否则生成的图片就会有问题,如果不是用tiff来生成图形的话,就需要加入各个参数合适的大小值。


命令2:(不修改大小)

tiff(filename = "稀释性曲线2.tif",width = 15,height = 12,units ="cm",compression="lzw",bg="white",res=600);

ggplot(agcd,aes(seqs,value))+geom_point()+aes(shape=bq)+scale_shape_manual(values=c(1,19,3,6))

+theme(panel.background=element_blank(),panel.grid.minor=element_blank(),

axis.line=element_line(size=0.5),legend.title=element_blank())

+theme(axis.text.x=element_text(colour="black"),axis.text.y=element_text(colour="black"))

+xlab("序列数  Sequences quantity")+ylab("OTU个数  OTU quantity");

dev.off()


命令2,生成图片以后,点击copy to clipboard,调整合适的大小,然后选择copy as的类型(bitmap,metafile, 确认后,然后就可以将图片粘贴到你想要他到的地方了,得到的是矢量图,(这个我更喜欢,但是生成的是适用于word的矢量图,我在word中另存后,反而不清晰了,如下图

【T】ggplot—散点图(geom_point)

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有