如何用R语言画heatmap.js 百度地图图

温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
本文转自:
阅读(25857)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'如何用R语言画heatmap图',
blogAbstract:'&&&&&&& 今天师弟给了一个画heatmap的东东,有时间了认真学习一下!
介绍如何使用 R 绘制 heatmap 的文章。 今天无意间在
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}后使用快捷导航没有帐号?
查看: 1968|回复: 0
R语言绘制heatmap热图
金牌会员, 积分 2159, 距离下一级还需 841 积分
论坛徽章:18
& && &绘制heatmap热图,Rowv、Colv分别代表的是否在热图上画出相关的聚类树,其他参数可以参考
扫一扫加入本版微信群后使用快捷导航没有帐号?
R绘图基础(四)热图 heatmap
查看: 30533|
评论: |来自: 糗世界
摘要: 我们在分析了差异表达数据之后,经常要生成一种直观图--热图(heatmap)。这一节就以基因芯片数据为例,示例生成高品质的热图。比如钢蓝渐白配色的热图首先还是从最简单的heatmap开始。 library(ggplot2)
library(A ...
我们在分析了差异表达数据之后,经常要生成一种直观图--热图(heatmap)。这一节就以基因芯片数据为例,示例生成高品质的热图。比如钢蓝渐白配色的热图首先还是从最简单的heatmap开始。& library()
& library(ALL) #可以使用biocLite("ALL")安装该数据包
& data("ALL")
& library(limma)
& eset&-ALL[,ALL$mol.biol %in% c("BCR/ABL","ALL1/AF4")]
& f&-factor(as.character(eset$mol.biol))
& design&-model.matrix(~f)
& fit&-eBayes(lmFit(eset,design)) #对基因芯片数据进行分析,得到差异表达的数据
& selected
&- p.adjust(fit$p.value[, 2]) &0.001
& esetSel &- eset[selected,] #选择其中一部分绘制热图
& dim(esetSel) #从这尺度上看,数目并不多,但也不少。如果基因数过多,可以分两次做图。
& library(hgu95av2.db)
& data&-exprs(esetSel)
& probes&-rownames(data)
& symbol&-mget(probes,hgu95av2SYMBOL,ifnotfound=NA)
& symbol&-do.call(rbind,symbol)
& symbol[is.na(symbol[,1]),1]&-rownames(symbol)[is.na(symbol[,1])]
& rownames(data)&-symbol[probes,1] #给每行以基因名替换探针名命名,在绘制热图时直接显示基因名。
& heatmap(data,cexRow=0.5)使用heatmap函数默认颜色生成的热图 这个图有三个部分,样品分枝树图和基因分枝树图,以及热图本身。之所以对样品进行聚类分析排序,是因为这次的样品本身并没有分组。如果有分组的话,那么可以关闭对样品的聚类分析。对基因进行聚类分析排序,主要是为了色块好看,其实可以选择不排序,或者使用GO聚类分析排序。上面的这种热图,方便简单,效果非常不错。接下来我们假设样品是分好组的,那么我们想用不同的颜色来把样品组标记出来,那么我们可以使用ColSideColors参数来实现。同时,我们希望变更热图的渐变填充色,可以使用col参数来实现。& color.map &- function(mol.biol) { if (mol.biol=="ALL1/AF4") "#FF0000" else "#0000FF" }
& patientcolors &- unlist(lapply(esetSel$mol.bio, color.map))
& heatmap(data, col=topo.colors(100), ColSideColors=patientcolors, cexRow=0.5)使用heatmap函数top.colors填充生成的热图在heatmap函数中,样品分组只能有一种,如果样品分组有多次分组怎么办?heatmap.plus就是来解决这个问题的。它们的参数都一致,除了ColSideColors和RowSideColors。heatmap使用是一维数组,而heatmap.plus使用的是字符矩阵来设置这两个参数。& library(heatmap.plus)
& hc&-hclust(dist(t(data)))
& dd.col&-as.dendrogram(hc)
& groups &- cutree(hc,k=5)
& color.map &- function(mol.biol) { if (mol.biol=="ALL1/AF4") 1 else 2 }
& patientcolors &- unlist(lapply(esetSel$mol.bio, color.map))
& col.patientcol&-rbind(groups,patientcolors)
& mode(col.patientcol)&-"character"
& heatmap.plus(data,ColSideColors=t(col.patientcol),cexRow=0.5)使用heatmap.plus绘制热图这样绘图的不足是没有热图色key值。gplots中的heatmap.2为我们解决了这个问题。而且它带来了更多的预设填充色。下面就是几个例子。& library("gplots")
& heatmap.2(data, col=redgreen(75), scale="row", ColSideColors=patientcolors,
key=TRUE, symkey=FALSE, density.info="none", trace="none", cexRow=0.5)使用heatmap.2函数,readgreen渐变色填充生成的热图& heatmap.2(data, col=heat.colors(100), scale="row", ColSideColors=patientcolors,
key=TRUE, symkey=FALSE, density.info="none", trace="none", cexRow=0.5)
& heatmap.2(data, col=terrain.colors(100), scale="row", ColSideColors=patientcolors,
key=TRUE, symkey=FALSE, density.info="none", trace="none", cexRow=0.5)
& heatmap.2(data, col=cm.colors(100), scale="row", ColSideColors=patientcolors,
key=TRUE, symkey=FALSE, density.info="none", trace="none", cexRow=0.5)
& heatmap.2(data, col=redblue(100), scale="row", ColSideColors=patientcolors,
key=TRUE, symkey=FALSE, density.info="none", trace="none", cexRow=0.5)
& heatmap.2(data, col=colorpanel(100,low="white",high="steelblue"), scale="row", ColSideColors=patientcolors,
key=TRUE, keysize=1, symkey=FALSE, density.info="none", trace="none", cexRow=0.5)使用heatmap.2函数,heat.colors渐变色填充生成的热图使用heatmap.2函数,terrain.colors渐变色填充生成的热图使用heatmap.2函数,cm.colors渐变色填充生成的热图使用heatmap.2函数,redblue渐变色填充生成的热图使用heatmap.2函数,colorpanel渐变色填充生成的热图然而,以上的heatmap以及heatmap.2虽然方便简单,效果也很不错,可以使用colorpanel方便的设置渐变填充色,但是它的布局没有办法改变,生成的效果图显得有点呆板,不简洁。为此这里介绍如何使用ggplot2当中的geom_tile来为基因芯片绘制理想的热图。& library(ggplot2)
& hc&-hclust(dist(data))
& rowInd&-hc$order
& hc&-hclust(dist(t(data)))
& colInd&-hc$order
& data.m&-data[rowInd,colInd] #聚类分析的作用是为了色块集中,显示效果好。如果本身就对样品有分组,基因有排序,就可以跳过这一步。
& data.m&-apply(data.m,1,rescale) #以行为基准对数据进行变换,使每一行都变成[0,1]之间的数字。变换的方法可以是scale,rescale等等,按照自己的需要来变换。
& data.m&-t(data.m) #变换以后转置了。
& coln&-colnames(data.m)
& rown&-rownames(data.m) #保存样品及基因名称。因为geom_tile会对它们按坐标重排,所以需要使用数字把它们的序列固定下来。
& colnames(data.m)&-1:ncol(data.m)
& rownames(data.m)&-1:nrow(data.m)
& data.m&-melt(data.m) #转换数据成适合geom_tile使用的形式
& head(data.m)
1 0.1898007
1 0.6627467
1 0.5417057
1 0.4877054
1 0.5096474
1 0.2626248
& base_size&-12 #设置默认字体大小,依照样品或者基因的多少而微变。
& (p &- ggplot(data.m, aes(X2, X1)) + geom_tile(aes(fill = value), #设定横坐标为以前的列,纵坐标为以前的行,填充色为转换后的数据
colour = "white") + scale_fill_gradient(low = "white", #设定渐变色的低值为白色,变值为钢蓝色。
high = "steelblue"))
& p + theme_grey(base_size = base_size) + labs(x = "", #设置xlabel及ylabel为空
y = "") + scale_x_continuous(expand = c(0, 0),labels=coln,breaks=1:length(coln)) + #设置x坐标扩展部分为0,刻度为之前的样品名
scale_y_continuous(expand = c(0, 0),labels=rown,breaks=1:length(rown)) + opts( #设置y坐标扩展部分为0,刻度为之前的基因名
axis.ticks = theme_blank(), axis.text.x = theme_text(size = base_size *
#设置坐标字体为基准的0.8倍,贴近坐标对节,x坐标旋转90度,色彩为中灰
0.8, angle = 90, hjust = 0, colour = "grey50"), axis.text.y = theme_text(
size = base_size * 0.8, hjust=1, colour="grey50"))使用ggplot2中geom_tile函数,钢蓝渐白配色的热图也可以很轻松的实现传统渐变填充色,红黄渐变。& (p &- ggplot(data.m, aes(X2, X1)) + geom_tile(aes(fill = value),
colour = "white") + scale_fill_gradient(low = "yellow",
high = "red"))
& p + theme_grey(base_size = base_size) + labs(x = "",
y = "") + scale_x_continuous(expand = c(0, 0),labels=coln,breaks=1:length(coln)) +
scale_y_continuous(expand = c(0, 0),labels=rown,breaks=1:length(rown)) + opts(
axis.ticks = theme_blank(), axis.text.x = theme_text(size = base_size *
0.8, angle = 90, hjust = 0, colour = "grey50"), axis.text.y = theme_text(
size = base_size * 0.8, hjust=1, colour="grey50"))使用ggplot2中geom_tile函数,红黄渐变填充的热图使用红绿渐变填充。& (p &- ggplot(data.m, aes(X2, X1)) + geom_tile(aes(fill = value),
colour = "white") + scale_fill_gradient(low = "green",
high = "red"))
& p + theme_grey(base_size = base_size) + labs(x = "",
y = "") + scale_x_continuous(expand = c(0, 0),labels=coln,breaks=1:length(coln)) +
scale_y_continuous(expand = c(0, 0),labels=rown,breaks=1:length(rown)) + opts(
axis.ticks = theme_blank(), axis.text.x = theme_text(size = base_size *
0.8, angle = 90, hjust = 0, colour = "grey50"), axis.text.y = theme_text(
size = base_size * 0.8, hjust=1, colour="grey50"))使用ggplot2中geom_tile函数,红绿渐变填充的热图使用绿白渐变填充。& (p &- ggplot(data.m, aes(X2, X1)) + geom_tile(aes(fill = value),
colour = "white") + scale_fill_gradient(low = "seagreen",
high = "white"))
& p + theme_grey(base_size = base_size) + labs(x = "",
y = "") + scale_x_continuous(expand = c(0, 0),labels=coln,breaks=1:length(coln)) +
scale_y_continuous(expand = c(0, 0),labels=rown,breaks=1:length(rown)) + opts(
axis.ticks = theme_blank(), axis.text.x = theme_text(size = base_size *
0.8, angle = 90, hjust = 0, colour = "grey50"), axis.text.y = theme_text(
size = base_size * 0.8, hjust=1, colour="grey50"))使用ggplot2中geom_tile函数,绿白渐变填充的热图
刚表态过的朋友 ()读书笔记(9)
install.packages('heatmap')
install.packages('treemap')
library(heatmap)
library(treemap)
data=matrix(1:25,nrow=5,ncol=5,Rrow=FALSE,dimnames=list(c('A1','A2','A3','A4','A5'),c('B1','B2','B3','B4','B5')))
heatmap(data,xlab='test1',ylab='test2',main='test',col=abs(data/3))
####treemap
item subitem values1 values2
treemap(data,index=c('item','subitem'),vSize=values1,vColor=values1,title='country')
## index 表示,在树状图上显示的标题,先后顺序,必须是由小到大
##vSize 表示底层面积的大小
##vcolor 表示颜色
## try test
Markdown及扩展
Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面。
使用简单的符号标识不同的标题,将某些文字标记为粗体或者斜体,创建一个等,详细语法参考帮助?。
本编辑器支持 Markdown Extra ,  扩展了很多好用的功能。具体请参考.
Markdown Extra 表格语法:
——– | —
Computer | $1600
可以使用冒号来定义对齐方式:
价格 | 数量
| :——– | ——–:| :–: |
| Computer
| 1600 元 |
1 元 | 234
Markdown Extra 定义列表语法:
代码块语法遵循标准markdown代码,例如:
@requires_authorization
def somefunc(param1='', param2=0):
'''A docstring'''
if param1 & param2:
print 'Greater'
return (param2 - param1 + 1) or None
class SomeClass:
&&& message = '''interpreter
... prompt'''
生成一个脚注.
用 [TOC]来生成目录:
使用MathJax渲染LaTex 数学公式,详见.
行内公式,数学公式为:Γ(n)=(n-1)!?n∈N。
块级公式:
x=-b±b2-4ac-------√2a
更多LaTex语法请参考 .
可以渲染序列图:
Created with Rapha?l 2.1.0张三张三李四李四嘿,小四儿, 写博客了没?李四愣了一下,说:忙得吐血,哪有时间写。
或者流程图:
Created with Rapha?l 2.1.0开始我的操作
关于 序列图 语法,参考 ,
关于 流程图 语法,参考 .
离线写博客
即使用户在没有网络的情况下,也可以通过本编辑器离线写博客(直接在曾经使用过的浏览器中输入即可。Markdown编辑器使用浏览器离线存储将内容保存在本地。
用户写博客的过程中,内容实时保存在浏览器缓存中,在用户关闭浏览器或者其它异常情况下,内容不会丢失。用户再次打开浏览器时,会显示上次用户正在编辑的没有发表的内容。
博客发表后,本地缓存将被删除。 
用户可以选择
把正在写的博客保存到服务器草稿箱,即使换浏览器或者清除缓存,内容也不会丢失。
注意:虽然浏览器存储大部分时候都比较可靠,但为了您的数据安全,在联网后,请务必及时发表或者保存到服务器草稿箱。
浏览器兼容
目前,本编辑器对Chrome浏览器支持最为完整。建议大家使用较新版本的Chrome。
IE9以下不支持
IE9,10,11存在以下问题
不支持离线功能
IE9不支持文件导入导出
IE10不支持拖拽文件导入
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1838次
排名:千里之外
原创:13篇[转载]用R语言的gplots包里的heatmap.2做热谱图
用过R的亲们都知道,一般想做热图的话,调用R里heatmap()函数,但是heatmap有个缺点就是不能加color
key。幸好在gplots库里面有一个heatmap.2()的函数,它是对heatmap的一个升级,它的参数虽然比之前多了,但是更加人性化,设置的范围和精细度都有提高,废话不多说了,先看看heatmap.2怎么画热图吧:
Step1:准备数据(.txt):(格式如下)
也就是按R可以读进去的数据格式准备数据(file.txt)就ok了。(本例是按Tab键分割的,部分数据)
a&-read.table("C://........yourpath/file.txt")#把数据读进去
colnames(a)&-as.factor(colnames(a))#把列名转换成因子(如果列名本身属于字符型,则可省略此步)rownames(a)&-as.factor(rownames(a))#同上一步(行名)
b&-as.matrix(a)#把文本框格式转换成矩阵library(gplots)#调用gplots库heatmap.2(b,distfun=function(x)
dist(x,method='euclidean'),hclustfun=function(x)
hclust(x,method='centroid'),dendrogram="row",labRow=NA,col=colorRampPalette(c("white","brown")),trace="none",="none")#前几行都属于一步,这里面的参数比较多,下面分别说一下主要参数:
(1):b------你的数据矩阵
(2):disfun=function(x)dist(x,method=‘自己选’)--------聚类时的距离算法(单引号里选算法)
(3):hclustfun=function(x)
hclust(x,method='自己选')---------聚类算法
(4):dendrogram="row"-----------------------------------按行聚类(若想按列聚,则用”col“代替)
(5)labRow=NA--------------------------------是否在热图上显示对应行名的名称
(6)col=colorRampPalette(c("white","brown"))-----设置热图填充颜色(本例中显示由白到棕色渐变色)
(7)trace="none",="none”----------这两个选项到时候试一下就知道作用了,一般选“none”就ok了
最后贴上我做图:
如果还想细致了解个参数作用,在R里输入:??&
函数名查看帮助,如:??heatmap.2即可。
&PS:由于时间仓促,难免出错,如有问题,请留言!
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 heatmapjs 晴空画布 的文章

 

随机推荐