web-dev-qa-db-ja.com

ggplot2でギリシャ記号を使用するには?

カテゴリはギリシャ文字で名前を付ける必要があります。私は使っている ggplot2、およびそれはデータで美しく機能します。残念ながら、これらのギリシャ記号を(目盛りで)x軸に配置し、凡例に表示する方法を理解することはできません。それを行う方法はありますか?

更新: link を見ましたが、やりたいことを達成するための良い方法が説明されていません。

90
Sam

ギリシャ語のシンボルをggplot2に入れる方法を説明する優れたWikiへの リンク を次に示します。要約すると、ギリシャ記号を取得するためにあなたがすることはここにあります

  1. テキストラベル:_parse = T_または_annotate内で_geom_text_を使用します。
  2. 軸ラベル:expression(alpha)を使用してギリシャ語のアルファを取得します。
  3. ファセットラベル:facet内で_labeller = label_parsed_を使用します。
  4. 凡例ラベル:凡例ラベルでbquote(alpha == .(value))を使用します。

リンクでこれらのオプションの詳細な使用法を見ることができます

編集。目盛りに沿ってギリシャ記号を使用する目的は、次のように達成できます。

_require(ggplot2);
data(tips);
p0 = qplot(sex, data = tips, geom = 'bar');
p1 = p0 + scale_x_discrete(labels = c('Female' = expression(alpha),
                                      'Male'   = expression(beta)));
print(p1);
_

これを行うときに利用できるさまざまなシンボルとその使用方法に関する完全なドキュメントについては、_?plotmath_を参照してください。

135
Ramnath

expression(delta)を使用します。小文字の_δ_の場合は 'delta'、大文字の_Δ_の場合は 'Delta'です。

ギリシャ文字の完全なリストは次のとおりです。

Ααアルファ
Ββベータ
Γγガンマ
Δδデルタ
Εεイプシロン
Ζζゼータ
Ηηeta
Θθシータ
Ιιiota
Κκカッパ
Λλラムダ
Μμmu
Ννnu
Ξξxi
Οοomicron
Ππパイ
Ρρrho
Σσシグマ
Ττtau
Υυウプシロン
Φφファイ
Χχchi
Ψψpsi
Ωωオメガ

編集:他の単語と組み合わせて使用​​する場合、コメントからコピー:expression(Delta*"price")

31

最も簡単な解決策:Unicode文字を使用する

expressionやその他のパッケージは必要ありません。
これがggplotの新しい機能かどうかはわかりませんが、機能します。また、ギリシャ語と通常のテキストを簡単に混在させることができます(目盛りに「*」を追加するなど)

テキスト文字列内でUnicode文字を使用するだけです。私が考えることができるすべてのオプションでうまく機能するようです。 編集:以前はファセットラベルでは機能しませんでした。これはある時点で修正されたようです。

library(ggplot2)
ggplot(mtcars, 
       aes(mpg, disp, color=factor(gear))) + 
  geom_point() + 
  labs(title="Title (\u03b1 \u03a9)", # works fine
       x= "\u03b1 \u03a9 x-axis title",    # works fine
       y= "\u03b1 \u03a9 y-axis title",    # works fine
       color="\u03b1 \u03a9 Groups:") +  # works fine
  scale_x_continuous(breaks = seq(10, 35, 5), 
                     labels = paste0(seq(10, 35, 5), "\u03a9*")) + # works fine; to label the ticks
  ggrepel::geom_text_repel(aes(label = paste(rownames(mtcars), "\u03a9*")), size =3) + # works fine 
  facet_grid(~paste0(gear, " Gears \u03a9"))

reprexパッケージ (v0.3.0)によって2019-08-28に作成

23
Matt L.

やりたいことをするために_latex2exp_パッケージは必要ありません。次のコードは、トリックを行います。

_ggplot(smr, aes(Fuel.Rate, Eng.Speed.Ave., color=Eng.Speed.Max.)) + 
  geom_point() + 
  labs(title=expression("Fuel Efficiency"~(alpha*Omega)), 
color=expression(alpha*Omega), x=expression(Delta~price))
_

enter image description here

また、いくつかのコメント(この時点では未回答)は、ギリシャ文字の後にアスタリスク(*)を付けることについて尋ねました。 expression(alpha~"*")は機能するため、試してみることをお勧めします。

_Δ Price_の取得についてさらにコメントが寄せられ、それを達成する最も簡単な方法はexpression(Delta~price))です。ギリシャ文字の前に何かを追加する必要がある場合は、これを行うこともできます:expression(Indicative~Delta~price)

enter image description here

11
onlyphantom