我正在尝试创建一个正常的十六进制图,但我不想按默认值对图进行着色,而是希望按第三个变量的平均值对图进行着色。在我的特定情况下,我无法使用 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)
您可以使用以下代码:
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)
输出: