Geom_Hex 按第三个变量着色

Jus*_*tin 4 r ggplot2 geom

我正在尝试创建一个正常的十六进制图,但我不想按默认值对图进行着色,而是希望按第三个变量的平均值对图进行着色。在我的特定情况下,我无法使用 stat_summary_hex 函数。

library(ggplot2)
library(hexbin)

x <- rnorm(1e4, 0, 5)                                                     
y <- rnorm(1e4, 0, 10)  
z <- rnorm(1e4, 20, 1)

data.frame(x, y, z) %>%                                                   
  ggplot(mapping = aes(x = x, y = y, z = z)) +
  geom_hex(bins = 20)
Run Code Online (Sandbox Code Playgroud)

Qui*_*ten 5

您可以使用以下代码:

library(ggplot2)
library(hexbin)
library(ggraph)

x <- rnorm(1e4, 0, 5)                                                     
y <- rnorm(1e4, 0, 10)  
z <- rnorm(1e4, 20, 1)

data.frame(x, y, z) %>%                                                                                            
  ggplot(aes(x, y, z=z)) + 
  stat_summary_hex(fun = function(x) mean(x), bins = 20) +
  scale_fill_viridis_c(option = "magma")

ggplotly()
Run Code Online (Sandbox Code Playgroud)

输出:

在此输入图像描述