ggplot里的text是按照绝对大小的,默认好像是3mm,但是其他要素是根据当前坐标位置进行计算
我想能够有个什么方法来计算出当前的geom__text是不是超出界限了(或者和别的一组geom_text是不是重合了)
大概想法是根据要保存图片的实际尺寸来算出几个关键geom的绝对位置和大小
就比如,下面这个例子
df <- data.frame(
gp = factor(letters[1:3]),
y = rnorm(3)
)
ggplot(df,aes(gp,y))+
geom_col()+geom_hline(yintercept = 0)+geom_text(aes(gp,y,label=y),vjust=ifelse(df$y>0,-.2,1.1))
想要能判断出红框中的geom_text超出界限后,就设置成显示在柱形图内(大概就像excel里作图标签自动变换位置的样子)
因为要批量生成一组图片,而且数据大小相差较大,不可能一个个图再去调参数
请教各位大神,有什么好方法来判断各个要素的绝对位置呢?
比如,怎么知道panel占据了整个plot多少比例和相对位置高度
(根据我粗浅的想法,至少得知道了这个相对比例和位置,才能根据最后要保存图片的实际尺寸算出相应的绝对位置。或者说有什么更科学的方法或者函数能解决这一问题(哭)