我想将注释y值偏移字体文本边距的倍数。 (与HTML / CSS中的em
单位类似)。
当然我可以在y参数中添加epsilon(试错法)。但我需要动态调整它,因为它是更大功能的一部分。
dataA <-
structure(list(dose = c(0.5, 1, 2, 3), len = c(10.605, 19.735,
26.1, 45), sd = c(4.49976315166172, 4.41543643905882, 3.77415030520987,
3.3166247903554)), row.names = c(NA, -4L), class = "data.frame", .Names = c("dose",
"len", "sd"))
x="dose";y="len"
Ploting
p <-ggplot(dataA, aes(x=get(x), y=get(y))) +
geom_point(aes(x=get(x), y=get(y)))
p + annotate("text", x = dataA[[x]], y = dataA[[y]], label = c("needs" ,"to go 1,5", "Text-margin up", "Thanks!"))
答案 0 :(得分:2)
使用参数geom_text()
(或nudge_y
进行水平偏移)尝试nudge_x
:
dataA$label <- c("needs" ,"to go 1,5", "Text-margin up", "Thanks!")
ggplot(dataA, aes(dose, len)) +
geom_point() +
geom_text(aes(label = label), nudge_y = 1.5)
答案 1 :(得分:0)
由于问题最初是关于annotate
的,它不知道nudge_
参数,因此这里是使用此功能的解决方案。
关键是使用vjust
参数,help
中没有清楚显示该参数:
p + annotate("text", x = dataA[[x]], y = dataA[[y]],
label = c("needs" ,"to go 1,5", "Text-margin up", "Thanks!"),
vjust=-1.5)
但是实际上,在这种特定情况下,由于有多个位置需要注释,因此使用geom_text
是更好的方法。