如何添加一个框包含文本(平均值=....,西格玛=...)在左侧和一个水平分层直方图在右侧的一个图在r?

kmynzznz  于 2023-05-20  发布在  其他
关注(0)|答案(1)|浏览(67)

我的代码是非常straightforaward.我想绘制一些列againt彼此从mpg数据集.但我想添加一个框包含文本(平均值=....,西格玛=...)在左侧和一个水平分层直方图在右侧的图.当然直方图和文本是作为y轴使用的数据.这里简单的图without hist和文本框:

library(ggplot2)

ggplot2:: ggplot(data = mpg)+aes_string(x="displ",y= "hwy") +geom_point()
j9per5c4

j9per5c41#

它不是100%清楚你的最终情节应该是什么样子。但是一个选择是创建三个单独的图并使用例如将它们粘合在一起。patchwork

library(ggplot2)
library(patchwork)

p1 <- ggplot(data = mpg, aes(x = displ, y = hwy)) +
  geom_point()

p2 <- ggplot(data = mpg, aes(y = hwy)) +
  geom_histogram(binwidth = 2) +
  labs(y = NULL) +
  coord_cartesian(ylim = range(mpg$hwy))

p3 <- ggplot(mpg) +
  theme_void() +
  annotate(
    geom = "label",
    x = 0, y = .5,
    label = paste0(
      "mean = ", round(mean(mpg$hwy), 1), "\n",
      "sigma = ", round(sd(mpg$hwy), 1)
    ),
    hjust = 0
  ) +
  scale_x_continuous(limits = c(0, 1))

p3 + p1 + p2 +
  plot_layout(widths = c(1, 3, 1))

相关问题