3

私の問題は単純です: 1x1 の正方形で構成される長方形のグリッド内に配置された x、y 座標を持つ点がいくつかあります。これらのポイントは平均化された座標を持つため、複数のポイントに同じ座標が割り当てられます (それらは完全に重なります)。再現可能な例:

# generate fake data
y <- seq(from=0.5, to=9.5, by=1)
x <- seq(from=0.5, to=4.5, by=1)
xnew <- sample(x,100,replace=T)
ynew <- sample(y,100,replace=T)
data <- data.frame(xnew,ynew)

# create chart
ggplot(data, aes(x=xnew, y=ynew)) + geom_point()

特定の位置(特定の正方形を表すx、y座標)でのポイントの頻度を表したいと思います。stat_bin2dは正しい方向への一歩ですが、(私にとっては) 不可解なことに、ビンがマップ上のさまざまな場所に配置されているため、分布を視覚的に確認することが難しくなっています。

2 つの異なる解決策を想像できます。

1) ビンをポイントの中央に配置する方法はありますか? 次のように、左下隅がポイントにある場合もあれば、右下隅にある場合もあります。ここのように

さらに、ボックスが互いに接触するのに十分な大きさであれば理想的ですが、binwidth=c(1,1)inを変更するstat_bin2d()と、すべてのポイントが互いに少なくとも 1 平方離れているため、ビンが重なってはいけませんが、実際にはカウントが変更されます。 .

または、ポイント サイズを使用します。

2) そのサイズが濃度を反映するポイントを好むでしょう (その方法は白黒でも良いでしょう)。私は geom_point() で試しました:

ggplot(data, aes(x=xnew, y=ynew))+geom_point(aes(x=xnew,y=ynew, size=..count..))

しかし、私は得ました

Error in eval(expr, envir, enclos) : object 'count' not found

そして、`stat="bin" を追加すると、y への代入と競合します。私はここを見ました: ggplot2 では、個々のポイントごとにサイズを設定できないのはなぜですか? 、しかし、それを機能させることができませんでした。

ご協力いただきありがとうございます。

4

2 に答える 2

6

ggplot2 バージョン 2.0.0 では、正確にこれを行うためにgeom_count()が導入されました。あなたのデータで:

ggplot(data, aes(x=xnew,y=ynew)) +
  geom_count()

収量: geom_count チャート

于 2016-06-27T14:24:03.657 に答える
5
data2 <- aggregate(data$x,by=list(x=data$x,y=data$y),length)
names(data2)[3] <- "count"


ggplot(data2, aes(x=x,y=y)) + geom_point(aes(size=count))

ここに画像の説明を入力

于 2013-06-24T15:49:37.293 に答える