多次有童鞋问关于“点阵气泡图”的画法,类似下图这样的:
其实,关于这种有点类似热图的气泡图在之前的两篇进化树组合图文章中介绍过。你完全可以用Evolview和iTOL进行绘制,当然,今天重点介绍用ggplot2绘制这样的点状图。
Evolview
详细的绘制方法请参考《“进化树+点状图”组合图的绘制》,可以轻松实现热图、条形图、堆叠图、蛋白结构域等多种图表的相互组合,如若不需要进化树,在后期软件(比如Adobe illustrator)删掉即可。另外,Evolview已改版,大家可以去体验下新的界面。
iTOL
方法与上文的Evolview相似,详细的教程请参考《iTOL绘制进化树+点图组合图》,点图的效果是下图这样的,当然你也可以绘制和其他图表的组合图。
ggplot2
如果我只是想单纯的画个点状图,就像热图那样。这里分享一种用R的ggplot2包画点状图的方法。
# 加载ggplot2包
library(ggplot2)
#读入数据
dt<-read.table('testdata.txt',sep ='\t',header="">-read.table('testdata.txt',sep>
#查看数据框dt的前6行
head(dt)
#加载reshape2包
library(reshape2)
#将“宽型”数据框转成“长型”数据框
dt2<>
#查看数据框dt2的前6行
head(dt2)
#指定纵轴标签顺序
dt2$Genus<>
#绘制正方形“点”,带描边
p1<-ggplot(dt2, aes(variable,="" genus))+geom_point(aes(size="">-ggplot(dt2,>
p1
#绘制“圆点”,不带描边颜色
p2<-ggplot(dt2, aes(variable,="" genus))+geom_point(aes(size="">-ggplot(dt2,>
p2
#建立颜色与数据的关系,这里让不同的样本的点显示不同的颜色
p3<-ggplot(dt2, aes(variable,="" genus))+geom_point(aes(size="">-ggplot(dt2,>
p3
#自定义颜色,这里使用RColorBrewer的颜色集
p4<>
p4
#更改图表的主题,实现类似iTOL的点状图效果
p5<>
p5
#不想要网格线也可以去掉,甚至图例也可用legend.position = 'none'去掉
p6<-p5+theme(panel.grid =="">-p5+theme(panel.grid>
p6
#保存图表为pdf格式
ggsave('p6.pdf',width =4.4,height =6,units ='in')
联系客服