我正在尝试改变geom_text()
ggplot 中图层的大小,以使标签始终比给定范围窄。范围是在数据中定义的,但我不知道如何将标签缩放到比这更窄的范围,而不需要大量的试验和错误。
我希望我可以构造一个标签大小的函数,并且nchar(label)
(实现字符宽度略有变化)将返回一个我可以与形状宽度进行比较的宽度,并按比例缩小直到不再需要。
ggplot 标签大小是否定义为像素数、绘图高度的百分比或其他类似的东西?
这是一个有用的起点吗?(如果没有,请随时删除我的帖子)。您将范围添加到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))