首页 > 解决方案 > R 2d图中的计数比率

问题描述

我有 2 个连续变量(X 和 Y),我想将它们合并到 2d 网格中。与每个 (x,y) 对相关联,我有一个通过或失败的因素。我想在二维网格中绘制通过/失败的比率。

例如,使用 iris 数据集: ggplot(iris, aes(x=Sepal.Length , y=Petal.Length)) + geom_bin2d() 绘制每个 2d bin 中的总计数 - 我如何更改它以绘制每个 bin 中virginica 和 versicolor 的计数比率?

标签: rggplot2

解决方案


通过使用stat_summary2d(), 数据预处理(将二进制因子转换为数据帧中的数字)并使用与函数关联的 z 参数stat_summary2d()

iris$tf <- as.numeric(as.logical(round(runif(nrow(iris)))))

ggplot(iris, aes(x=Sepal.Length , y=Petal.Length,z=tf)) +
stat_summary2d(bins = 10,binwidth = c(2)) + 
labs(title = "Ratio of T/F of Factor by Petal.Length and Sepal.Length") +
scale_fill_continuous(name = "Ratio")

注意:如果您将二进制因子转换为数字,默认情况下它将强制转换为 1/2(而不是 0/1),因此请减去一个。如果它是合乎逻辑的,那么这将是不必要的。

编辑:添加默认fun='mean'参数以stat_summary2d()明确这是函数的默认行为。

在此处输入图像描述


推荐阅读