2

我有一个由以下数据组成的表

frame,X,Y

这是几个眼动追踪分析的结果数据。现在我想使用 R 创建一个热图,如下所示 在此处输入图像描述

我尝试了在网上找到的几个脚本,但没有一个给我这个结果。

我能怎么做?


这里有一些示例数据忽略前两列

task,visualization,frame,X,Y
1,b,1,383,221
1,b,1,632,356
1,b,1,947,663
1,b,1,546,206
1,b,1,488,272    
1,b,1,578,752
1,b,1,415,261
1,b,1,693,158
1,b,1,684,528
1,b,1,592,67
1,b,1,393,180
1,b,1,1033,709
1,b,1,1080,739
1,b,1,711,523
1,b,1,1246,49
1,b,1,742,69
1,b,1,601,370
1,b,10,902,684
1,b,10,517,241
1,b,10,583,86
1,b,10,582,754
1,b,10,426,257
1,b,10,575,229
1,b,10,697,150
1,b,10,379,520
1,b,10,390,286
1,b,10,618,396
1,b,10,710,143
1,b,10,383,188
1,b,10,1026,713
1,b,10,1078,625
1,b,10,713,521
4

1 回答 1

8

你可以很容易地使用stat_bin2dfrom获得这种类型的情节ggplot2

library(ggplot2)
ggplot(dat, aes(x = X, y = Y)) + stat_bin2d(bins = 10)

在此处输入图像描述

正如@RomanLustrik 建议的那样,这可以进行简单的分箱,您还可以执行某种内核平滑。这也可以使用ggplot2

ggplot(dat, aes(x = X, y = Y)) + 
 stat_density2d(geom = "tile", aes(fill = ..density..), contour = FALSE) + 
 geom_point()

在此处输入图像描述 请注意,这dat是您提供的示例数据,将您的数据放入data.frame

dat = read.table(textConnection("task,visualization,frame,X,Y
    1,b,1,383,221
    1,b,1,632,356
    1,b,1,947,663
    1,b,1,546,206
    1,b,1,488,272    
    1,b,1,578,752
    1,b,1,415,261
    1,b,1,693,158
    1,b,1,684,528
    1,b,1,592,67
    1,b,1,393,180
    1,b,1,1033,709
    1,b,1,1080,739
    1,b,1,711,523
    1,b,1,1246,49
    1,b,1,742,69
    1,b,1,601,370
    1,b,10,902,684
    1,b,10,517,241
    1,b,10,583,86
    1,b,10,582,754
    1,b,10,426,257
    1,b,10,575,229
    1,b,10,697,150
    1,b,10,379,520
    1,b,10,390,286
    1,b,10,618,396
    1,b,10,710,143
    1,b,10,383,188
    1,b,10,1026,713
    1,b,10,1078,625
    1,b,10,713,521"), header = TRUE, sep = ",")
于 2013-04-20T11:50:36.500 回答