r - 如何使 ggplot2 中每个方面的 y 轴比例相同?

标签 r plot ggplot2 lattice

这是一个场景示例:

df<-data.frame(t=1:8, V=c(1:4,seq(40,46, 2)), C1=rep(c('A','B'), 4), C2=rep(c('C','D'), c(4,4)))

这会产生以下数据框:

  t  V C1 C2
1 1  1  A  C
2 2  2  B  C
3 3  3  A  C
4 4  4  B  C
5 5 40  A  D
6 6 42  B  D
7 7 44  A  D
8 8 46  B  D

我想绘制 V 与 t 的关系图,并通过 C1 和 C2 拆分小平面。我希望每个方面的 max(V)-min(V) 相同,但 max(V) 和 min(V) 会有所不同,具体取决于每行图的数据范围。这是我到目前为止的位置:

ggplot(data=df) + geom_point(aes(x=t, y=V)) + facet_grid(C2~C1)

default version

max(V)-min(V) 大小相同,大量 y 轴被浪费,每个面板中的额外范围掩盖了趋势。另一种选择是:

ggplot(data=df) + geom_point(aes(x=t, y=V)) + facet_grid(C2~C1, scales='free_y')

free_y version

在这种情况下,max(V)-min(V) = {第一行图为 6,第二行图为 3}。

也没有办法为每一行指定限制,就像我们可以在 lattice 中通过将包含每个面板范围的列表传递给 ylim 参数来做的那样。

最佳答案

您可以将 space="free_y" 添加到 facet_grid() 以确保每行的值之间的间距相同。

ggplot(data=df) + geom_point(aes(x=t, y=V)) + 
        facet_grid(C2~C1, scales='free_y',space="free_y")

关于r - 如何使 ggplot2 中每个方面的 y 轴比例相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20585077/

相关文章:

r - 从父脚本中启动第二个 R 脚本

如果字符串包含任何单词列表,则 R 每行返回 true 或 false

matlab - 基于值的 plot3 线条颜色

plot - Vega-Lite:添加不基于字段值/自动颜色/自动形状的自定义图例

r - 如何将州和县线添加到 R 中的 geom_raster ggplot?

css - 减少 fluidRow 之间的差距

r - 投{ reshape } : using variables instead of the columns' name

python - 使用 PyCharm 我想显示 plot extra figure 窗口

r - 如何在 R 中为 ggplot 的每个方面添加 R2?

r - R中ggplot2 barplot中的可变宽度条