2016-08-01 10 views
0

私は、ある変数が他の変数の関数としてどのように変化するかを示すデータフレームから面取りプロットを作成しようとしています。各変数にはエラーが関連付けられています。ここに私が持っているデータのサブセットがあります。 ID列、変数(のFeOへのSiO 2)や変数に関連したエラー(* _2stdev):次のコードを使用してファセットプロット内の個々の点にエラーバーを追加

df<-structure(list(ID = structure(c(3L, 4L, 6L, 1L, 2L, 10L), .Label = c("P466-an1", "P466-an2", "P468-an1", "P468-an2", "P469-an1", "P470-an1", "P471-an1", "P472-an1", "P473-an1", "P474-an1", "P475-an1", "P475-an2", "P476-an1", "P476-an2", "P477-an1", "P478-an1", "P479-an1", "P480-an1"), class = "factor"), 
      SiO2 = c(54.5147, 56.2223, 52.8499, 52.0293, 53.4221, 52.9802), 
      TiO2 = c(0.5928, 0.5792, 0.5771, 1.1373, 1.0962, 1.1535), 
      Al2O3 = c(17.5404, 18.1921, 19.4737, 15.7752, 16.455, 16.4117), 
      FeO = c(6.2115, 5.8676, 5.4874, 4.5952, 4.4242, 4.109), 
      SiO2_2stdev = c(1.5232, 2.3578, 0.6374, 1.3331, 0.6535, 0.6977), 
      TiO2_2stdev = c(0.0638, 0.0637, 0.0357, 0.1024, 0.0422, 0.0282), 
      Al2O3_2stdev = c(0.4519, 0.4572, 0.2044, 0.6378, 0.6546, 0.0624), 
      FeO_2stdev = c(0.426, 0.3973, 0.1145, 0.1992, 0.1106, 0.0427)), 
      .Names = c("ID", "SiO2", "TiO2", "Al2O3", "FeO", "SiO2_2stdev", "TiO2_2stdev", "Al2O3_2stdev", "FeO_2stdev"), 
      row.names = c(NA, 6L), class = "data.frame") 

library(reshape2) 
library(ggplot2) 

m.df<-melt(df, id=c('ID','FeO')) 

p<-ggplot(subset(m.df, variable %in% c('SiO2','TiO2','Al2O3')),aes(x=value, y=FeO))+ 
    geom_point()+ 
    facet_wrap(~ variable, ncol=1, scales="free_x")+ 
    theme_bw() 

p 

を、私はこのプロットを取得します

plot with no errorbars

これにエラーバー(縦と横)を追加したいと思いますが、面取りされたプロットでこれを行う方法はわかりません。

geom_errorbargeom_errorbarhを使用して、私は未溶融データフレームから個々のプロットについてこれらをプロットすることができました。私はすべてのプロットをループで作ることができると思いますが、この方法でエラーバーを追加する方法はわかりません。さらに、一度にすべてのプロットを見たいと思います。

これを読んでいただきありがとうございました、ありがとうございました。のコメントaosmith あたりとして -R

編集 、私はmeltでID変数にFeO_2stdevを追加しました。私は今、correctc垂直エラーバーを持つプロットを生成することができます。だから私は今どのようにgeom_errorbarhプロットごとに正しいエラーバーをプロットすることができます理解するのが難しいです。

以下は、私が使用している更新されたコードです。プロットが表示されます。

library(reshape2) 
library(ggplot2) 

m.df<-melt(df, id=c('ID','FeO', 'FeO_2stdev')) 
m.df$y.min<-m.df$FeO-m.df$FeO_2stdev 
m.df$y.max<-m.df$FeO+m.df$FeO_2stdev 

p<-ggplot(subset(m.df, variable %in% c('SiO2','TiO2','Al2O3')), aes(x=value, y=FeO))+ 
    geom_point()+ 
    facet_wrap(~ variable, ncol=1, scales="free_x")+ 
    theme_bw()+ 
    geom_errorbar(aes(ymin=y.min, ymax=y.max)) 

p 

plot with vertical errorbars

+0

あなたはFeO_2stdev' 'に基づいてエラーバーを追加しようとしていますか?もしそうなら、この変数を 'melt'のid変数の1つにして、' geom_errorbar'で使うことができます。そうでない場合は、エラーバーを計算するために使用するものを明確にすることはできますか? – aosmith

+0

ああ、そうです!私はこれをやって、FeOエラーバーをプロットすることができます。さて、私の質問は、各プロットに適切な水平エラーバーをプロットする方法です。私はこれを反映するために質問を更新しました。 – ramesesjd

答えて

関連する問題