我的博文
HEAT MAP 相关
这类图多用在需要表现数据的变化情况(例如基因的上调下调、基因互作程度
等)的地方。
现在能做heatmap的软件已经有很多,除了常用的R,mathlab之外还有如SPSS,heatmap bulider等。
我在作图的时候使用的是R语言的heatmap()命令生成样图
然后用Adobe Illustrator CS6进行修饰
关于R语言,由于其能实现的功能太多,这里只用一个例子解释一下如何制作heatmap,
代码可以套用
准备工作:
R包(windows需要安装两个,R包和Rtools包) http://www.r-project.org/
Adobe Illustrator CS6 互联网资源很多,这里提供一个http://www.playnext.cn/illustrator-cs6.html
Excel等表格处理软件
需要绘制的数据表,例如我使用的是手头上的一组斑马鱼SiRNA表达情况的数据
step 1:
使用R绘制Heatmap所需要的格式为下图所示:
Name 这一列就是每一行数据的标签,Repeat则是对应不同类别。
根据这一点,先将数据整理为对应的格式,
我保留了原始数据中的Gene Name(F列)以及相关上下调的normalized数据(N和O列),其它的全部去除
最后整理结果如下,保存为 .csv格式
(之所以保存为 .csv格式是由于.csv格式比较简单,数据与数据之间用【,】隔开,方便处理)
Step1.2
但是这里需要注意的一点是,作为每一行标签的Name不能有重复,否则在R处理的时候会报错
剔除重复值的方法就是选中Name列,用Excel的【条件格式】
将重复的值挑选出来后,重复的单元格颜色会改变
再用【筛选】功能
点击Name右下角的小箭头 -【按颜色筛选】-选择颜色
这样就能将所有重复数据选出来,进行删除或者重命名Name
剔除所有重复的值之后就保存为
Step2 绘制草
首先【文件】-【改变工作目录】-选中result_step1.2.csv所在的工作目录
result<- read.csv("result_step1.2.csv", sep=",") row.names(result) <- result$Name result <- result[,2:3] # or result <- result[,-1] result_matrix <- data.matrix(result) heatmap(result_matrix, col=rainbow(256,start=0,end=2/6), revC=FALSE, scale="column", margins=c(5,15))
最后【文件】-【另存为】-【PDF】
保存为矢量格式
Step3 后期修饰
由R直接生成的图很简陋,不够精致,往往需要后期进行一些修饰
而对矢量图片进行修饰则需要使用Adobe公司的Adobe Illustrator软件
若想熟练使用这个软件,可以先学习其一些工具的基本操作,网络上教程很多,这里不再一一赘述
推荐可先将 http://www.51zxw.net/list.aspx?cid=303 的第一章第二章先了解一下。
在 Illustrator中打开生成的result.pdf之后,会发现这张图有以下几个问题
1.右侧的Gene Name重叠在一块了
2.Repeat1以及Repeat2字体太大,并且是竖版排列
3.比例不协调
问题逐一解决
Step3.1
文字重叠处理
使用左侧的直接选择工具,选中后安退格键,先将上下两部分删除,文字之后再添加
然后用选择工具框选住文字部分(注意,和上面的直接选择工具不同)
这样文字就被框选出来
在Illustrator上方状态中的字符栏更改字体大小到字体不再重叠
我这里从7修改成2.2
文字整体有点位移,用选择工具拖动调整一下,
使其逐行对齐。
Step3.2
添加文字性内容,将Repeat1以及Repeat2添加回来,或者添加其它修饰性文字/线条
使用文字工具
在画板空白处点击后添加文字,并将字体大小改为合适样式
使用选择工具将其拖动到合适位置
Step3.3
更改整体比例,让图片协调
共0条评论