私は40グループ(short_IDで定義されています)を持ち、それぞれのshort_IDに対して異なるyスケールのブレークを使用する40の異なるプロットを生成したいと考えています。私はyスケールのための休憩を(1)mean-2SD、(2)平均および(3)mean + 2SDにしたい。R ggplot:ファセットされたggplotsを使用してグループ依存のy軸ブレークを定義するにはどうすればよいですか?
私はXとY変数とグループ化変数 "short_ID"を含むDataplotsというデータセットを持っています。ブレークとM $ short_IDをグループ化変数として定義するために、追加のベクトルM $ SD11(= mean-2SD)、M $ meanとM $ SD22(= mean + 2SD)を作成しました。以下のコードは部分的には動作しますが、問題は私がブレークをグループに依存する(つまり、short_IDに依存する)方法を知らないということです。下のコードを実行すると、すべてのプロットに対して同じy軸ブレークが得られます。たとえば、各プロットのM $ SD22値ではなく、ベクトルM $ SD22の最大値です。だから、私は
"scale_y_continuous(breaks=c(M$SD11, M$mean, M$SD22)", for example "scale_y_continuous(group=M$short_ID, breaks=c(M$SD11, M$mean, M$SD22)" but this does not work.
に何かを追加する必要があると思う誰もが、私は私の異なるグループ(すなわち、short_IDs)のための異なるブレークを定義するために何ができるか知っていますか?これを行うには、以下のコードをどのように変更できますか?どうもありがとう!
Dataplot <- ggplot(data = Dataplots, aes(x = Measure, y = Amylase_u, group = short_ID)) + geom_line() + facet_wrap(~ short_ID) + scale_y_continuous(breaks=c(M$SD11, M$mean, M$SD22))
「データプロット」と「M」の例を追加しました。この例の目的のために、私は実際に持っている40の代わりに2つのグループ(すなわち、short_ID)のみを含めた。したがって、この例では、2つのプロットを生成する必要があります。各プロットは、各short_IDに対して1つずつあり、グループごとに異なるy軸区切りを使用します。 Dataplotsの
例:Mの
dput(Dataplots) structure(list(short_ID = c(1111, 1111, 1111, 1111, 2222, 2222, 2222, 2222), Measure = c(1, 2, 3, 4, 1, 2, 3, 4), Amylase_u = c(81.561, 75.648, 145.25, 85.246, 311.69, 261.74, 600.93, 291.39)), .Names = c("short_ID", "Measure", "Amylase_u"), row.names = c(NA, -8L), class = "data.frame", codepage = 65001L)
例:
dput(M) structure(list(SD11 = c(162, 682), mean = c(97, 366), SD22 = c(32, 51), short_ID = c(1111, 2222)), .Names = c("SD11", "mean", "SD22", "short_ID"), row.names = 1:2, class = "data.frame")
@マーク、私は完全なデータセットにあなたの提案を適用しようとしているが、右のそれを得るように見えることはできません。私は合計61のプロットを持っています。
myPlots <-
lapply(unique(Dataplots$short_ID), function(thisID){
Dataplots %>%
filter(short_ID == thisID) %>%
ggplot(aes(x = Measure, y = Amylase_u)) +
geom_line() +
scale_y_continuous(breaks= M %>%
filter(short_ID == thisID) %>%
select(mean) %>%
as.numeric()
) +
ggtitle(thisID)
})
私は、あなたの最終cowplotの暗示を続け(あなたが見ることができるように私は、y軸上の被験者の平均のために行くことにしましたし、SDSをドロップすることを決めた。)::私は始め
plot_grid(ggdraw() + draw_label("Amylase_u", angle = 90), plot_grid(
plot_grid(plotlist = lapply(myPlots, function(x){x + theme(axis.title = element_blank())}))
, ggdraw() + draw_label("Measurement")
, ncol = 1
, rel_heights = c(0.9, .1))
, nrow = 1, rel_widths = c(0.05, 0.95))
しかし、このことは、y軸上の被験者平均を有する61のプロットをもたらすが、その中には測定が指定されていない(グラフ自体が欠落している)。
plot_grid(
ggdraw() + draw_label("Amylase_u", angle = 90)
, plot_grid(
plot_grid(plotlist = lapply(myPlots, function(x){x +theme(axis.title = element_blank())}))
, ggdraw() + draw_label("Measurement")
, ncol = 1
, rel_heights = c(0.9, .1)
, nrow = 1
, rel_widths = c(0.05, 0.95)))
これは私のグラフを与えるんが、彼らは小さなであり、レイアウトが)Rplot2(ひどいです:私は、私が試した置き忘れ「)」があるかもしれない考え出しました。 rel-heightとwidthを適応させようとしましたが、ヘルプファイルを読んだ後でも、どのようにそれらを適応させるべきかは分かりません。
もう一度おねがいします!彼らは本当に必要はありません、これはすでに大幅にプロット(Rplot3)を向上させ、それでもレイアウトを調整する必要があるため
最後に、私は、各プロットの上にIDnumbersを削除しました。
こんにちはを与えます。あなたが最小限の再現可能な例を提供すれば、多くの助けになります。 'dput()'を使ってこのプロセスを手助けすることができます:https://gist.github.com/dsparks/3688652 – Docconcoct
この提案をありがとう。私は今再現可能な例を追加しました。私はあなたに私にいくつかの助言を与えることができれば嬉しいです事前に多くの感謝! – Charlotte