2

こんにちはweekly.mean.values、次の構造のデータ フレームを取得しました。

week:mean:ci.lower:ci.upper

週は要因です。mean、ci.lower および ci.upper は数値です。週ごとに、平均値が 1 つだけで、ci.lower または ci.upper が 1 つ存在します。

次のコードを使用して、平均の周りに 95% 信頼区間内の影付きの領域をプロットしようとしていました。

ggplot(weekly.mean.values,aes(x=week,y=mean)) + 
    geom_line() + 
    geom_ribbon(aes(ymin=ci.lower,ymax=ci.upper))

ただし、プロットは空白になりました (つまり、x 軸と y 軸のみが存在し、線や点はなく、影付きの領域はありません)。

geom_ribbon の部分を削除すると、線ができました。これは非常に単純な作業であることはわかっていますが、geom_ribbon で必要なものをプロットできなかった理由がわかりません。ヒントをいただければ幸いです。

4

3 に答える 3

2

このスレッドは非常に古いものだと思いますが、Google はまだ見つけています。

答えは、で使用しているデータの一部を使用するには、yminとを設定する必要があるということです。それらをスカラー値に設定すると、リボンは上から下までプロット全体をカバーします。ymaxy-axis

使用できます

ymin=0 
ymax=mean

0からあなたのy-pointまたは偶数に行く

ymin=mean-1
ymax=mean+1

実際のデータを含むストリップをリボンで覆うようにします。

于 2013-06-11T13:32:41.653 に答える
1

(2.1.0)のggplotのドキュメントから:geom_ribbon

連続する x 値ごとに、geom_intervaly 間隔を表示します。は、範囲の最小値が 0 に固定されてgeom_areaいる の特殊なケースです。geom_ribbon

この場合、x の値は の因数にはなりませんgeom_ribbonweek1 つの解決策は、因子から数値に変換することです。例えば

ggplot(weekly.mean.values,aes(x=as.numeric(week),y=mean)) + 
  geom_line() + 
  geom_ribbon(aes(ymin=ci.lower,ymax=ci.upper))

geom_lineX 軸の目盛りの表示が異なる場合がありますが、問題なく因子から数値への切り替えを処理する必要があります。

于 2016-10-20T15:25:48.227 に答える
1

何かが足りないかもしれませんが、リボンはgrey20デフォルトで塗りつぶされてプロットされます。このレイヤーをデータの上にプロットしているので、それが不明瞭になるのも不思議ではありません。また、最初の呼び出しに提供されたデータから派生したプロット軸の制限ggplot()が、信頼区間リボンを含めるのに十分でない可能性もあります。その場合、灰色/空白のプロットが表示されても驚かないでしょう。

これが問題かどうかを確認するには、geom_ribbon()行を次のように変更してみてください。

geom_ribbon(aes(ymin=ci.lower,ymax=ci.upper), alpha = 0.5)

問題が私が考えているものである場合、その下にデータが表示される透明度のあるリボンがプロットされます。

その場合、x と y の範囲をデータの範囲 +/- プロットしたい信頼区間に設定し、レイヤーの順序を入れ替えて (つまり、リボンの上に線を引きます)、リボンで透明度を使用します。それを通してグリッドを表示します。

于 2012-05-26T08:37:13.490 に答える