我有一个包含 10k 行和 3 列的数据框:xpos、ypos 和集群(集群是 0 到 9 之间的数字):http://pastebin.com/NyQw29tb
我想显示一个六边形图,每个六边形根据该六边形内最常见的集群着色。
到目前为止,我有:
library(ggplot2)
library(hexbin)
ggplot(clusters, aes(x=xpos, y=ypos, z=cluster)) + stat_summary_hex(fun.x=mode)
我认为这给了我想要的东西(即用 0 到 9 的颜色填充每个六边形),但色标看起来是连续的,我不知道如何使它使用离散的色标。
对于额外的上下文,这里是数据的底层、更困惑的 View ,我试图通过使用六边形来平滑它:
qplot(data=clusters, xpos, ypos, color=factor(cluster))
最佳答案
我不知道你的 stat_summary_hex(fun.x=mode)
正在做,但我很确定这不是您的想法( mode
给出了对象的存储模式,而不是统计模式,而 fun.x
与 stat_summary_hex
的任何形式参数都不匹配)。尝试这个。它将每个 bin 中的观察结果制成表格,并拉出最大计数的标签。
ggplot(clusters, aes(x=xpos, y=ypos, z=cluster)) + stat_summary_hex(fun = function(x) {
tab <- table(x)
names(tab)[which.max(tab)]
})
关于r - 使用 stat_summary_hex 以离散色标显示最频繁的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17371591/