13

で何かに引っかかってしまいましたggplot2。関連する投稿のほとんどを読み、試してみましたが、実際の解決策は見つかりませんでした。

facet_gridsmy withのラベルに数式を含めたいggplot2

  • 生ファイルに µg.L-1 という名前が書けません
  • タイトルと軸では、たとえば : qplot(day, activity, data=a) +xlab(expression("100 µg "*.L^"-1"*"")): これはうまく機能しています。
  • facet_labels はどうすればよいですか? レベルを設定し、ラベルの要素の名前を変更できますが、式は考慮されません。たとえば、次のようになります。

    levels(a$group) <- c("control", expression("100 µg "*.L^"-1"*""))

    qplot(…, facets=~group)

結果 :

ファセット 1 のラベルはグラフに書き込まれます: コントロール

ファセット 2 のラベルはグラフに書かれています: "100 µg " .L^"-1" "" …</p>

そして、私はそれを望んでいません。

facet_grid(.~group, labeller=label_bquote(…))すべてのラベルを同じ式にしたくないので、使用したくありません。ラベルを1つずつ手動でbquote(…)編集したい…代わりに試してみましexpression(…)たが、同じ悪い結果が発生します

誰かがこれについて手がかりを持っていますか?


例: データフレームを定義します:

activity<- as.numeric(c("44","41","48","43","42","45","44","39", "47", "68", "88", "57"))
group<-c("first","first","first","first","first","first",
         "second","second","second","second","second","second")
day<- c("0", "0", "0", "20","20", "20","0", "0", "0", "20","20", "20" )
a<-data.frame(activity, group, day)

私はプロットします:

require (ggplot2) 

qplot(day, activity, facets=.~group, data=a, ylim=c(25,90))

ここに画像の説明を入力

ファセット ラベルと y 軸の名前を変更したい:

levels(a$group)<- c("control", expression("100 µg "*.L^"-1"*""))
qplot(day, activity, facets=.~group, data=a, ylim=c(25,90),
  ylab=expression("fmol "*.µl^"-1"*""))

ここに画像の説明を入力

y 軸ではうまく機能しますが、ファセット ラベルでは機能しません...手がかりはありますか?

4

2 に答える 2

15

提案された解決策:

前提条件:

activity <- as.numeric(c("44", "41", "48", "43", "42", "45", 
  "44", "39", "47", "68", "88", "57"))
group <- c("first", "first", "first", "first", "first", "first", 
  "second", "second", "second", "second", "second", "second")
day <- c("0", "0", "0", "20", "20", "20", "0", "0", "0", "20", 
  "20", "20")
a <- data.frame(activity, group, day)
require(ggplot2)
levels(a$group) <- c("control", expression("100 µg " * .L^"-1" * ""))

提案された解決策:

p1 <- qplot(day, activity, data = a)
p1 + facet_grid(. ~ group, labeller = label_parsed)

結果:

ここに画像の説明を入力

説明

ラベル構造を文字列として作成し、そこで数式を作成し、~スペースを置き換えるために使用します...次にfacet_grid()、設定することにより、渡されたラベル文字列を数式として解析するように指示しますlabeller = label_parsed...

注: 表示の詳細は で説明されていますが、式ではなく文字列を使用する?plotmathことに注意してください。geom_text()facet_grid()

上記がお役に立てば幸いです。

参照:

ラベラーに関する Hagley Wickham のページを参照してください...: https://github.com/hadley/ggplot2/wiki/labeller

于 2016-05-07T15:58:21.687 に答える
9

すべてのラベルが有効な式であれば、label_parsed を使用できます (必要に応じてテキストを引用符で囲むことができます)。

library(ggplot2) 
levels(a$group)<- c("'control test'", "100~mu*g*'.L'^-1")
ggplot(a) + facet_grid(.~group, labeller=label_parsed)

ここに画像の説明を入力

于 2016-05-08T00:43:17.310 に答える