我的代码是非常straightforaward.我想绘制一些列againt彼此从mpg数据集.但我想添加一个框包含文本(平均值=....,西格玛=...)在左侧和一个水平分层直方图在右侧的图.当然直方图和文本是作为y轴使用的数据.这里简单的图without hist和文本框:
library(ggplot2) ggplot2:: ggplot(data = mpg)+aes_string(x="displ",y= "hwy") +geom_point()
j9per5c41#
它不是100%清楚你的最终情节应该是什么样子。但是一个选择是创建三个单独的图并使用例如将它们粘合在一起。patchwork:
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))
1条答案
按热度按时间j9per5c41#
它不是100%清楚你的最终情节应该是什么样子。但是一个选择是创建三个单独的图并使用例如将它们粘合在一起。
patchwork
: