【发布时间】:2017-01-15 04:44:58
【问题描述】:
我正在尝试使用annotate 标记直线段。但是,将注释的角度设置为线的斜率不会使注释与线段对齐。
library(ggplot2)
ggplot(data.frame(x = seq(0, 14, 0.1)), aes(x = x)) +
stat_function(fun = function(x) {
14 - x
}, geom = "line") +
theme_bw() +
annotate(
geom = "text",
x = 7.5, y = 7.5,
label = "x + y = 14",
angle = -45) # NISTunits::NISTradianTOdeg(atan(-1))
这给出:
有人可以帮助解释这种现象,以及如何解决这个问题,即将注释对齐以与线段具有相同的角度?
【问题讨论】:
-
因为 x 轴的长度与 y 轴的长度不同。因此,角度不是 45 !如果两个轴具有相同的比例,它将工作 100%
-
@Kabulan0lak 太好了,这是有道理的——所以建议我应该将角度乘以视口的纵横比?我怎么能以编程方式做到这一点?
-
视图是否有固定大小?如果是这样,您可以计算轴 x 和 y 之间的比率以获得适当的角度,是的。
-
@Kabulan0lak 不,视口没有固定的纵横比。
-
您可以添加
coord_fixed()以便固定纵横比...