7

expression(phantom(x) >=80)適切な以上の記号を取得するためにラベル テキストで使用した ggplot があります。

ただし、すぐ下に (N=...) も必要です。

require(ggplot2)
.d <- data.frame(a = letters[1:6], y = 1:6)

labs <- c("0-9\n(N=10)","10-29\n(N=10)","30-49\n(N=10)", +
   "50-64\n(N=10)","65-79\n(N=10)", expression(phantom(x) >=80))

ggplot(.d, aes(x=a,y=y)) + geom_point() + 
   scale_x_discrete(labels = labs)

ここに画像の説明を入力

expression()をエスケープと組み合わせるにはどうすればよい\nですか?

4

2 に答える 2

14

@otsaw が以前の質問への回答で述べたように、plotmath(したがってexpression) は改行を許可しません。
ただし、ハックとして、atoplet≥80を の上に表示するために使用できます(N=10)。しかし、すぐにわかるように、他のラベルとは一致しません。

labs <- c("0-9\n(N=10)","10-29\n(N=10)","30-49\n(N=10)", 
          "50-64\n(N=10)","65-79\n(N=10)", 
          expression(atop(phantom(x) >=80, (N==10))))

ここに画像の説明を入力

したがって、さらなるハックとして、他のラベルを式として渡すことができます。

labs <- c(expression(atop(0-9,(N==10))),expression(atop(10-29,(N==10))),
          expression(atop(30-49,(N==10))), expression(atop(50-64,(N==10))),
          expression(atop(65-79,(N==10))), expression(atop(phantom(x) >=80, (N==10))))

ここに画像の説明を入力

しかしもちろん、(Unicode を使用した) @otsaw ソリューションは、かなり言葉数が少ないものです。

labs <- c("0-9\n(N=10)","10-29\n(N=10)","30-49\n(N=10)", 
          "50-64\n(N=10)","65-79\n(N=10)", 
          "\u2265 80\n(N=10)")

ここに画像の説明を入力

于 2012-11-02T15:57:18.210 に答える
1

もう 1 つの方法は、最近アーカイブされた を使用することtikzDeviceです。tikz これにより、ラテックスに適した形式のプロットが作成されます。

これにより、latex 式を文字列としてラベルに渡すことができます。

フォントなどの一貫性を保つために、文書全体と同じプリアンブルで文書をコンパイルできるという追加の利点があります。

これはすべて、 knitrを使用して自動化できます。opts_chunk$set(dev = 'tikz')

于 2012-11-05T00:06:53.340 に答える