我正在尝试使用var userAgent = $window.navigator.userAgent;
/(iPhone|iPad|iPod).* OS 9_\d/.test(userAgent) && !/Version\/9\./.test(userAgent);
标记直线段。但是,将注释的角度设置为线的斜率不会将注释与线段对齐。
annotate
这给出了:
有人可以帮助解释这种现象,以及如何解决这个问题,即对齐注释以使其与线段具有相同的角度?
答案 0 :(得分:2)
我相信这会给你你想要的东西。请参阅此答案以供参考Get width of plot area in ggplot2。
#Plot so we can reference the viewport
ggplot(data.frame(x = seq(0, 14, 0.1)), aes(x = x)) +
stat_function(fun = function(x) {
14 - x
}, geom = "line")
#Get the currentVPtree and then convert the VP's height/width to inches
current.vpTree()
a <- convertWidth(unit(1,'npc'), 'inch', TRUE)
b <- convertHeight(unit(1,'npc'), 'inch', TRUE)
#Replot using the ratio of a/b to get the appropriate angle
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 = (atan(a/b) * 180/pi) + 270)
我们基本上得到视口宽度/高度然后使用简单几何(反正切,因为我们有三角形的两边)来计算线的实际角度。
结果: