2014-03-27 47 views
3

我試圖改變ggplot中geom_text()圖層的大小,使標籤總是比給定範圍窄。範圍是在數據中定義的,但我不知道如何將標籤縮小到比這更窄,而沒有大量的試驗和錯誤。ggplot2中的geom_text()大小定義

我希望能構建一個標籤大小的函數和nchar(label)(實現字符寬度的變化),它會返回一個寬度,我可以與形狀寬度進行比較,然後縮小直到不再需要。

ggplot標籤大小是以像素數量,繪圖高度百分比還是其他類似的方式定義的?

+3

而不是'的nchar(標籤)'你可能希望使用'strwidth(標籤)'。我在完成我的最後一個項目時才發現'strwidth()',因爲它會非常有用。 – Gregor

+0

這是一個非常有用的開始 - 謝謝! –

回答

0

這會是一個有用的開始? (如果不是,請隨時刪除我的帖子)。您將範圍添加到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