2016-07-14 7 views
0

プロットのx軸ラベルをカスタマイズしています。各ラベルにはいくつかの値と複数の文字が含まれていますが、そのうちの1つ( 'x')はイタリック体にする必要があります。rプロット軸ラベルに複数のフォントを使用するには?

df <- data.frame(sp=c('a', 'b', 'c', 'd', 'e'), n=c(1, 2, 3, 4, 5)) 
labels <- c() 
for(i in 1:nrow(df)){ 
labels[i] = paste(df$sp[i], '\n(x = ', df$n[i], ')', sep = '') 
} 
plot(df$n, df$sp, xaxt = 'n') 
axis(1, at = seq(1, nrow(df)), labels = labels) 

にはどうすれば文字xをitalizeことができます。ラベルの内容は唯一の定期的なフォントで表示されますが、このコードは正常に動作しますか? substituteこの呼び出しは、たとえば動作しません:

substitute(paste(df$sp[i], italic('\n(x = '), df$n[i], ')', sep = ''), list(df$sp=df$sp, df$n=df$n)) 

答えて

1

一つの解決策は、各ラベルに一度axisを呼び出すことであろう、と残念ながら\n

plot(df$sp, df$n, xaxt = 'n') 
axis(1, at = 1:nrow(df), labels = rep("", nrow(df))) 
labels <-sapply(1:nrow(df), function(i){ 
    axis(1, at = i, line = 2, lty = 0, 
    labels = bquote(atop(.(as.character(df$sp[i])),.("(")~italic(x)~"="~.(i)~")"))) 
}) 
+0

ではなくatop()を使用して、これは行いません。トリック。私は文字xを 'df $ sp'ではなく、イタリック体にすることを欲しかった –

+0

@SantiXGR OK - 改訂版 –

+0

ほぼそこに!しかし、この最後のコード '。(i〜") 'には'。(df $ n [i]〜 ') 'の値を含めるべきですが、この変更は機能しません。 –

関連する問題