ggplot2
を使用してメタ分析用のフォレストプロットを作成しています。 Here is what an earlier version/incomplete graph looked like.ggplot geom_errorbarhエラー(連続して入力されたとき離散したいが、離散として入力すると連続したい)
私の問題は、もう少し作業をするつもりです。エラーバーはgeom_errorbarh
で取得できます。
データ
:私の人生のために Here is a data file fromdput
on my dropbox.は、私はそれは問題がなくても、Rにコピーアンドペーストような方法で、ここに直接貼り付ける取得する方法を見つけ出すことはできません。とにかく、そのファイル(q.df)を保存して
df.forest <- dget("your-path/q.df")
を実行すると、使用可能なdfが得られます。 (注:これは、私が作業している完全なdfから、この特定のプロットに必要な変数のみを含むように解析されていますが、何かが意味をなさない場合は、私に知らせてください。
これで、エラーバーを除いて、これがうまく動作し、必要なグラフが作成されます。
ggplot(df.forest, aes(y=ID, x=g, shape = iv.domain, size = plot.weight))+
geom_point(aes(size = iv.domain))+
scale_shape_manual(name = "IV Domain",
values = c(15, 16, 17, 5),
labels = c("Abstraction", "Social", "Temporal",
"Summary\neffects"))+
ylab("Refrence")+
scale_x_continuous(limits=c(-1.5,2.5), name='Effect size (g)')+
geom_vline(xintercept=0, color='dark grey', linetype='dotted')+
facet_grid(dv.level~., scales= 'free', space='free')+
theme_bw()+
theme(panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
panel.border=element_blank(),
axis.line=element_line(),
text=element_text(family='Times'),
plot.caption=element_text(hjust = 0, vjust = -7),
plot.margin = unit(c(.25,.25,.75,.25), "cm"))+
guides(size = FALSE) +
scale_size_discrete(range = c(1.5,4.5))
しかし、私は追加した場合:
Error: Continuous value supplied to discrete scale
:+ geom_errorbarh(aes(xmin=gLL, xmax=gUL),height=.3)
を、(gLL
とgUL
が上限/下限値の95%CIを表す数値値である)、それは私にエラーを与えます。私はgLL
とgUL
の因数分解のバージョンと入力すると
しかし、:
Error: Discrete value supplied to continuous scale
:+ geom_errorbarh(aes(xmin=gLL.f, xmax=gUL.f),height=.3)
を、それは私に反対のエラーを与えます。
私は高値と低値を検索しましたが、誰かが連続して入力すると何かが離散的であると言われている関数に問題があった場所を見つけることはできませんでしたが、離散的に入力します。
さらに、私はそれが昨日働いた理由をまだ知りませんが、今日は動作しません。私はRを再起動した/私の環境をクリアし、このエラーにつながる何もオフになっていないことを確認するために私の全体のスクリプトを一行一行に戻ったが、私は何も見つけることができません。私はgeom_errorbarh
のaes()
をggplot(aes())
に追加しようとしましたが、それでも何も変わりません。また、geom_errorbarh
を使わずにこれらの行を実行すると、正確なグラフからエラーバーを差し引いたものになるので、その行に間違いはありません。
ご協力いただければ幸いです。
乾杯!
編集: @ eipi10のおかげでわかりました。私はaes()
の変数が何であったのかを見落としていました(それはgeom_errorbarh
行に追加するまでうまくいってから考えていませんでした)。それはなぜ私が意味を成していなかったscale_size_discrete
を使用させていたのかを説明しますが、うまくいきました。とにかく、geom_point()
のaes()
を削除し、scale_size_discrete
をscale_size
に変更すると、それは機能しました。ありがとうございました! -AE
再現可能な例を作成する方法については、[この回答の](https://stackoverflow.com/a/5963610/2461552)をコピーして貼り付けることで、少量のデータを共有する方法があります。 – aosmith
唯一の層として 'geom_errorbarh'を使用しているプロットで同じエラーが発生しますか?問題に無関係なプロットコードをすべて削除すると、どこがうまくいかないのかを理解するのに役立ちます。 – aosmith