R将频率分布"Ticks"添加到ggplot

R Add Frequency Distribution "Ticks" to ggplot

我知道这可能不是最好的例子,但我想在 x 轴上方添加 x 变量 (lstat) 的分布,如示例图中所示。我提供了 MWE 的数据和简单折线图的代码。

但是,到目前为止我还没有关于如何实现这一点的线索。有什么提示吗?

library(ggplot2)
library(mlbench)

data(BostonHousing)

ggplot(data = BostonHousing) +
  geom_line(aes(x = lstat, y = medv))

Example Plot 表示 x 轴上方的频率刻度:

我相信你要找的东西叫做 'rug plot',你可以使用 ggplot 的 geom_rug() 函数来实现它,例如

library(tidyverse)
library(mlbench)

data(BostonHousing)

ggplot(data = BostonHousing) +
  geom_line(aes(x = lstat, y = medv)) +
  geom_rug(aes(x = lstat))

reprex package (v2.0.1)

于 2021-09-03 创建

如果要指定刻度线的高度,也可以使用geom_segment函数。

library(tidyverse)
library(mlbench)

data(BostonHousing)

ggplot(data = BostonHousing) +
  geom_line(aes(x = lstat, y = medv)) +
  geom_segment(aes(x = lstat, xend = lstat, yend = 3, y = 0))