stat_summary_hex按比例着色

时间:2014-03-24 20:55:54

标签: r ggplot2

假设我有一个包含以下列的数据框:x, y, num, denom,我想生成一个六边形图,其中六边形的颜色由sum(num)/sum(denom)设置。

我认为答案会涉及stat_summary_hex所以我天真地尝试过:

ggplot(data, aes(x=x, y=y)) + stat_summary_hex(fun=function(d) {sum(d$num)/sum(d$denom) })

但输出是:

Error: stat_summaryhex requires the following missing aesthetics: z

我理解为什么(我没有给它z美学),但我不确定下一步该尝试什么:我怎样才能传递2 z美学(即{{ 1}}和num)?

1 个答案:

答案 0 :(得分:2)

我最终找到了一个黑客来做我想做的事,我将在这里记录:

ggplot(data, aes(x=x,y=y,z=complex(0,num,denom))) + 
  stat_summary_hex(fun= function(x) { sum(Re(x)) / sum(Im(x)) })

基本上,我确实提供了一个z参数,这是一列复数。复数是数字,所以ggplot允许它们通过,它们有两个部分,一个实部和一个虚部,所以聚合函数能够计算我想要的比率。