我有以下 histogra 沉思 ggplot
library(ggplot2)
n = 1000
mean = 0
sd = 1
binwidth = 0.3 # passed to geom_histogram and stat_function
set.seed(1)
df <- data.frame(x = rnorm(n, mean, sd))
myplot = ggplot(df, aes(x = x, mean = mean, sd = sd, binwidth = binwidth, n = n)) +
theme_bw() +
geom_histogram(binwidth = binwidth,
colour = "white", fill = "cornflowerblue", size = 0.1)
现在我想在顶部中间区域添加一个自定义标签,但标签顶部应该留出一些边距,比如说 10 点。我尝试了以下方法
myplot+
geom_label(aes(x = mean((df$x)), y = 100), label = 'Plot with y', label.padding = unit(.7, 'lines'), fill = '#000000', color = '#ffffff', alpha = 0.2)
有没有什么方法可以动态地(仅基于数据而不进行任何硬编码)设置y = 100
将标签保持在顶部并以 10 点的边距?
将标签放置在绘图区域顶部并留出一些边距的一种方法是使用
annotation_custom
需要通过 grob 添加标签的方法。对于后者,我使用gridtext::richtext_grob
(因为grid
不提供labelGrob
而ggplot2
没有导出它):编辑如果你不能安装任何非标准包(例如)一个选项是使用
gridtext
非导出labelGrob
的:ggplot2
:::