如何使用 R 中的 ggplot2 为组级别创建不同的 Y 轴?

r programmingserver side programmingprogramming更新于 2025/4/11 13:37:17

如果我们有一个分类变量或组变量,那么我们可能想要为每个类别或级别创建一个折线图,这将有助于我们了解单个图中多个级别的范围。为此,我们可以使用 ggplot2 包的 facet_grid 函数,如下例所示。

示例

考虑以下数据框:

> x<-sample(LETTERS[1:4],20,replace=TRUE)
> y<-rnorm(20)
> df<-data.frame(x,y)
> df

输出

   x     y
1 C  -1.55668689
2 A   2.41399136
3 D  -0.78520253
4 A  -0.43092594
5 C   1.94379390
6 A   0.17494763
7 C  -1.61170476
8 A  -1.55362764
9 C  -0.53384492
10 A -0.66698812
11 D  1.44100518
12 D  1.10126743
13 D -1.54194367
14 B -0.03254252
15 A -0.63927406
16 A  1.72924629
17 A -0.10003278
18 B -0.08262660
19 C  1.29335456
20 A -1.50531507

加载 ggplot2 包并为 x 中的每个级别创建折线图:

示例

> library(ggplot2)
> ggplot(df,aes(x,y))+geom_line()

输出:

为 x 的每个级别创建折线图,但 Y 轴的比例由 R 根据给定的数据自由选择:

示例

> ggplot(df,aes(x,y))+geom_line()+facet_grid(x~.,scales="free")

输出:


相关文章