相同的轴限制了vert/hor,固定的方面,facet中的自由缩放

Die*_*nne 6 r ggplot2

为了比较多个医学变量的结果与范围的非常大的差异,我想创建一个类似下面的散点图

  • 每个面板水平和垂直相同的轴,

  • 固定的方面,使斜率= 1线穿过角落.

-

library(ggplot2)
set.seed(11)
d = rbind(
  data.frame(what = "a", v1 = rnorm(20)+0.2, v2 = rnorm(20)),
  data.frame(what = "b", v1 = rnorm(20, 100, 10)+20, v2 = rnorm(20, 100,10)))

ggplot(d, aes(x = v1, y = v2 )) +
  geom_point() +
  geom_abline(slope = 1) +
  facet_wrap(~what, scales = "free") +
  theme(aspect.ratio = 1) +
  coord_fixed(ratio = 1) + # No effect?
  stat_ellipse()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我知道很难通过预先计算的限制来获得这个. 在ggplot2中使用facet_wrap和scales ="free"设置单个轴限制

Sim*_*ard 1

如果您以 x 和 y 反转的方式无形地绘制所有内容,则每个面将具有相同的 x 和 y 轴。

library(ggplot2)
set.seed(11)
d = rbind(
  data.frame(what = "a", v1 = rnorm(20)+0.2, v2 = rnorm(20)),
  data.frame(what = "b", v1 = rnorm(20, 100, 10)+20, v2 = rnorm(20, 100,10)))

ggplot(d ) +
  geom_point(aes(x = v1, y = v2 )) +
  geom_blank(aes(x = v2, y = v1 )) +
  geom_abline(slope = 1) +
  facet_wrap(~what, scales = "free") +
  stat_ellipse(aes(x = v1, y = v2 )) +
  stat_ellipse(aes(x = v2, y = v1 ), alpha=0) 
Run Code Online (Sandbox Code Playgroud)