14

私は論文のグラフを完成させる途中であり、(stats.stackoverflow に関する議論の後)できるだけ多くの情報を送信するために、前景と平均の両方を示す次のグラフを作成することにしました。生データのバックグラウンド: 代替テキスト

ただし、1 つの問題が残っており、それはオーバープロットです。たとえば、マークされたポイントは 1 つのデータ ポイントを反映しているように見えますが、実際にはその場所に同じ値を持つ 5 つのデータ ポイントが存在します。したがって、関数として使用する際
にオーバープロットに対処する方法があるかどうかを知りたいです。base graphpoints
たとえば、それぞれのポイントが暗くなったり、太くなったり、...

手動で行うことはオプションではありません (このようなグラフやポイントが多すぎます)。さらに、ggplot2この単一の問題に対処するために学びたいことでもありません (理由の 1 つは、私が でサポートされていない 2 軸を好む傾向があるためですggplot2)。


更新:上記のグラフを自動的に作成し、垂直方向または水平方向のジッター (またはその両方) を追加してオーバープロットを回避する関数を作成しました:確認してください!

この関数は、パッケージとして (CRAN 上で)利用できるようにraw.means.plotなりました。raw.means.plot2plotrix

4

4 に答える 4

14

標準的なアプローチは、プロットする前にデータにノイズを追加することです。Rには、まさにそれを行う関数itter()があります。これを使用して、プロットの座標に必要なノイズを追加できます。例えば:

X <- rep(1:10,10)
Z <- as.factor(sample(letters[1:10],100,replace=T))

plot(jitter(as.numeric(Z),factor=0.2),X,xaxt="n")
axis(1,at=1:10,labels=levels(Z))
于 2010-08-27T13:04:15.413 に答える
8

ジッタリングに加えて、もう 1 つの優れたアプローチは、4 番目の色パラメーターとして (それをサポートするグラフィックス デバイスで) 取得できるアルファ ブレンディングです。この SO questionで、2 つのヒストグラムの「オーバープロット」の例を提供しました。

于 2010-08-27T13:26:17.183 に答える
4

ポイント数を表示するという一般的な問題に対するもう 1 つのアイデアは、ラグ プロット (ラグ関数) を使用することです。これにより、余白に沿って小さな目盛りが配置され、寄与するポイント数を示すことができます (タイには引き続きジッターまたはアルファ ブレンディングを使用します)。これにより、実際のポイントはジッター値ではなく真の値を表示できますが、敷物はプロットのどの部分がより多くの値を持っているかを示すことができます。

サンプル プロットでは、ダイレクト ジッタリングまたはアルファ ブレンディングがおそらく最適ですが、他の場合にはラグ プロットが役立ちます。

于 2010-08-27T15:20:32.090 に答える
3

ここで実装するのは難しいですが、sunflowerplotを使用することもできます。ダークが提案したように、アルファブレンディングを使用します。

于 2010-08-27T13:31:43.583 に答える