определение размера geom_text () в ggplot2

Я пытаюсь изменить размер слоя geom_text() в ggplot, чтобы метки всегда были уже, чем заданный диапазон. Диапазоны определены в данных, но я не знаю, как масштабировать метку, чтобы она была уже, без тонны проб и ошибок.

Я надеюсь, что я смогу построить функцию размера метки и nchar(label) (понимая, что ширина символа немного варьируется), которая вернет ширину, которую я мог бы сравнить с шириной формы, и уменьшать масштаб до тех пор, пока в ней нет необходимости.

Определяются ли размеры меток ggplot как количество пикселей, процент от высоты графика или что-то еще в этом роде?


person MDe    schedule 27.03.2014    source источник
comment
Вместо nchar(label) вы можете использовать strwidth(label). Я нашел strwidth() только тогда, когда закончил свой последний проект, в котором он был бы очень полезен.   -  person Gregor Thomas    schedule 27.03.2014
comment
Это очень полезное начало - спасибо!   -  person MDe    schedule 27.03.2014


Ответы (1)


Было бы полезно начать с этого места? (если нет, пожалуйста, удалите мой пост). Вы добавляете свои диапазоны в ranges = rnorm(foo, 5, 1).

library(ggplot2)
library(directlabels)

set.seed(67)
foo <- 8
df <- data.frame(x = rnorm(foo, 1, .5), y=rnorm(foo, 1, .5), ranges = rnorm(foo, 5, 1), let=letters[1:foo])

p <- ggplot(df, aes(x, y, color=let)) + geom_point()  + scale_colour_brewer(palette=5)
direct.label(p, 
    list("top.points", rot=0, cex=df[,3], 
          fontface="bold", fontfamily="serif", alpha=0.8))          

s

person Eric Fail    schedule 25.10.2015