固定文本框在 ggplot 绘图 window 中的位置
Fixing the position of Text box in plot window in ggplot
我有以下 ggplot
:-
library(dplyr)
library(ggplot2)
library(ggtext)
library(ggdist)
set.seed(1)
DF = rbind(data.frame('Label' = 'A', val = rnorm(200, 5)), data.frame('Label' = 'B', val = rnorm(500, 10)))
DF %>%
ggplot(aes(x=Label, y=val, fill=Label, alpha = 1)) +
stat_dots() +
geom_textbox(x = -Inf, y = -Inf, label = 'My text', width = unit(0.4, "npc"), height = unit(0.04, "npc"), box.margin = unit(c(1, 1, 1, 1), "pt"))
我想将 textbox
的位置固定在 window 的 bottom-left
区域,而不考虑地块 window 的大小。
但是上面的代码没有达到同样的效果。我的情节低于错误 window
Error in grid.Call.graphics(C_upviewport, as.integer(n)) :
cannot pop the top-level viewport ('grid' and 'graphics' output mixed?)
我在 MacOS
中使用 R。
如何将此 textbox
的位置固定在 bottom-left
位置的任何指针都将非常有帮助。
确保 geom_textbox 中的 aes 和数据覆盖 ggplot()。
library(ggplot2)
library(ggtext)
library(ggdist)
set.seed(123)
DF <- rbind(data.frame('Label' = 'A', val = rnorm(200, 5)),
data.frame('Label' = 'B', val = rnorm(500, 10)))
ggplot(DF, aes(Label, val)) +
stat_dots(aes(fill = Label)) +
geom_textbox(aes(-Inf, -Inf, hjust = 0, vjust = 0, label = "My text"),
data.frame())
我有以下 ggplot
:-
library(dplyr)
library(ggplot2)
library(ggtext)
library(ggdist)
set.seed(1)
DF = rbind(data.frame('Label' = 'A', val = rnorm(200, 5)), data.frame('Label' = 'B', val = rnorm(500, 10)))
DF %>%
ggplot(aes(x=Label, y=val, fill=Label, alpha = 1)) +
stat_dots() +
geom_textbox(x = -Inf, y = -Inf, label = 'My text', width = unit(0.4, "npc"), height = unit(0.04, "npc"), box.margin = unit(c(1, 1, 1, 1), "pt"))
我想将 textbox
的位置固定在 window 的 bottom-left
区域,而不考虑地块 window 的大小。
但是上面的代码没有达到同样的效果。我的情节低于错误 window
Error in grid.Call.graphics(C_upviewport, as.integer(n)) :
cannot pop the top-level viewport ('grid' and 'graphics' output mixed?)
我在 MacOS
中使用 R。
如何将此 textbox
的位置固定在 bottom-left
位置的任何指针都将非常有帮助。
确保 geom_textbox 中的 aes 和数据覆盖 ggplot()。
library(ggplot2)
library(ggtext)
library(ggdist)
set.seed(123)
DF <- rbind(data.frame('Label' = 'A', val = rnorm(200, 5)),
data.frame('Label' = 'B', val = rnorm(500, 10)))
ggplot(DF, aes(Label, val)) +
stat_dots(aes(fill = Label)) +
geom_textbox(aes(-Inf, -Inf, hjust = 0, vjust = 0, label = "My text"),
data.frame())