您的位置:首页 > 其它

R语言绘制热图Heatmap

2015-05-05 09:40 531 查看
热图,适合二维数据表的可视化,数值用颜色显示。

细活在于调颜色,给人感性的、辨识度高的认识。

nba <- read.csv("d:/ppg2015.csv", sep=",")

nba <- nba[order(nba$PTS),]; #按场均得分排名

row.names(nba) <- nba$PLAYER;#行名为球星名

nba <- nba[,-c(1:4,8,10,12)]

nba_matrix <- data.matrix(nba)

nba_heatmap <- heatmap(nba_matrix, Rowv=NA, Colv=NA, col = topo.colors(16),scale="column", margins=c(5,10))

Heatmap颜色的设置还是很关键的,直接体现你这幅图的效果了。

R中颜色调色板很多:

(1)简单的

heat.colors(n, alpha = 1)

terrain.colors(n, alpha = 1)

topo.colors(n, alpha = 1)

cm.colors(n, alpha = 1)

比如,col=cm.colors(256)) #这里的颜色设置为n=256种,如果为2,做出的图就有两种颜色,不是你颜色设置越多越好,根据自己的需要而定(即合理的设置n)。

(2)复杂的

rainbow(n, s = 1, v = 1, start = 0, end = max(1,n - 1)/n, alpha = 1)

其中n代表颜色的种类,Start是起始的颜色,end是结束的颜色。可以设置为red=0, yellow=1/6, green=2/6, cyan=3/6, blue=4/6 and magenta=5/6.

热图的优缺点:

优点:

1. 与实景结合,数据表达更直观

2. 用形状和色彩传递信息,更易理解

人对事物的认知是感性的基于某种基模的,人对形、色、声、味、温度、压力…等可直接感知内容的理解要比数字容易的多。

热图之所以为“热图”是用人们熟知的火焰色彩传达温度感,借助形、色和温度三种基模传递原本难以理解的数量信息,非常之给力。

3. 柔化视觉效果更好,对非精确信息表达更合理

摄影爱好者一定知道柔光摄影技巧,照出来的照片更漂亮。

柔化之所以更舒服是因为较为平滑的色彩过渡让人感觉更柔和。

有时候我们更希望得到数据的平均值或近似值,而不是精确值,比如我们点击网页上的内容时并不是精确到某一像素,而是一个区域。因此模糊处理后可以更合理的解释用户比较喜欢点击的区域。

缺点:

1. 柔化效果,对精确信息表达不准确

2. 色彩传递感性化信息,不容易分辨具体值

热图的应用场景:

(1)足球比赛中,可以用来呈现队员在场上的活动热图;

(2)超市或商店里呈现顾客的移动和驻足的热图,用来优化商品和货架布局;

(3)统计房屋租金价格,与地图结合看租房热度;

(4)统计程序中的字幕频度,用键盘和热图呈现,来看不同编程语言的常用字符:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: