1
私は、ベクトルに格納されているいくつかのラベルの太字と標準フォントの両方を含むプロットにテキストラベルを追加したいと考えています。太字フォントと通常フォントのラベルのベクトルをプロット上に表示するにはどうすればよいですか?
私は1つのラベル(下のプロットの例では緑色で表示されています)を実行していましたが、1回のテキスト呼び出しで表示したいラベルがいくつかあると失敗しました。プロット)。ここで
は、以下のプロットを作成する例です:
plot(0,ylim=c(1,10),xlab="",ylab="",xaxt="n",yaxt="n")
mylabels <- c("Some text in bold: normal text", "Some other text in bold: more normal text")
text(x=rep(1, 2), y=c(10,9), labels=mylabels)
# change labels to show bold font before the colon and normal behind
mylabels.bold <- gsub("$","')", gsub(":", "'), ':", gsub("^","paste(bold('", mylabels)))
#> mylabels.bold
#[1] "paste(bold('Some text in bold'), ': normal text')"
#[2] "paste(bold('Some other text in bold'), ': more normal text')"
# this works
text(x=1, y=8, labels=parse(text=mylabels.bold[1]), col="green")
# this doesn't
parsetext <- function(x) { parse(text=x) }
text(x=rep(1, 2), y=c(7,6), labels=lapply(mylabels.bold,parsetext), col="red")
そこで質問です:どのように私は赤い文字が緑色のように見てもらうことができますか?
おかげで、これは確かに動作します。それでも私はlapply()で解決策を見たいと思うでしょう。または上記の例でlapplyが動作しない理由を理解することができます。誰ですか? – Stefan
答えを更新しました。 'lapply'は' labels'引数が文字ベクトルである必要があるので動作しません。しかし、 'lapply'はリストを作成して動作しません。文字ベクトルを生成する 'sapply'に変更しました。 – LyzandeR