2016-04-11 11 views
1

ggplot()関数とその上に構築されたものは、グローバルポイントサイズを無視します。しかし、plot()text()のような機能はありません。前者の関数は、フォントサイズがsizeパラメータで絶対値で指定されることを前提としていますが、後者は相対的なスケーリングを行うcexで機能します。R:相対的なネイティブとggplot2のメソッドの混合での相対的なフォントサイズと絶対的なフォントサイズ

これらのメカニズムを混在させることは必ずしも可能ではありません。次に例を示します。一連のポリゴンをプロットし、それらの内部にラベルを配置する(通常はマップ用)。特に非凸多面体の場合は、適切なラベルの位置を決定するために、というよりrgeos::polygonsLabel()を使用するとよいでしょう。この関数はtext()の上に構築されているため、相対的なフォントサイズだけを渡すこともできます。しかし、後でgfplot2パッケージのgeom_text()というラベルを貼りたいかもしれません。 rgeos::polygonsLabel()出力を最適に使用するには、フォントサイズをここで一致させる必要があります。

答えて

1

私は次の例が期待どおりに機能していることを発見しました。もし私がそうしてはいけないことをやっているなら、私を修正してください。 point-to-mm変換が可能です。このサイトとの互換性のためにPNG画像ファイルを作成しますが、たとえばSVGやPDFも同様に動作します。

pointSize <- 20 # or whatever you want 

# Setting point size here affects the native plotting methods 
# like text() 
png('myfigure.png', pointsize=pointSize) # apparent default: 12 

library(ggplot2) 
plot.new() 

pointToMM = function(x) 0.352778*x 

# plot a few 'o's 
p <- ggplot(mtcars, aes(wt, mpg, label = 'o')) + 
    geom_text(size = pointToMM(pointSize)) # apparent default: pointToMM(11) 

# label the axes in the same 
p <- p + labs(x = 'xo xo xo xo xo xo', y = 'xo xo xo xo xo xo') + 
    theme_bw(pointSize) # apparent default: 12 

print(p) 

# Add 'xo' in two places. Notice how the sizes match up. 
# The x and y coordinates were chosen ad-hoc for this example 
text(0.35,0.13, 'xo') 
text(0.5, 0.0, 'xo') 

dev.off() 

sample plot