1Dデータの密度プロットを生成できます:
qplot(mydatapoints, geom='density')
ヒートマップグリッドの例もたくさん見ましたが、これらは1Dデータのヒストグラムに似ており、データは滑らかな曲線を示すのではなく、個別のバケットに入ります。
1D密度に似ているが、密度を表すために色相/彩度/明度などの2Dデータのプロットを作成できますか?
MASS
パッケージの_kde2d
_によって実装される2D密度推定が必要だと思います。
_df <- data.frame(x=rnorm(10000),y=rnorm(10000))
_
MASS
とベースR:
_k <- with(df,MASS:::kde2d(x,y))
filled.contour(k)
_
ggplot
経由(geom_density2d()
がkde2d()
を呼び出します)
_library(ggplot2)
ggplot(df,aes(x=x,y=y))+geom_density2d()
_
私は_filled.contour
_の方が魅力的だと思いますが、layout
を使用してページレイアウトを引き継ぐため、何かを変更したい場合は、作業が大変です。等高線の間の色を塗りつぶすブライアンディッグスの答えに基づいて構築します。これは、比較のために透明な点が追加された、異なるアルファレベルの同等のものです。
_ggplot(df,aes(x=x,y=y))+
stat_density2d(aes(alpha=..level..), geom="polygon") +
scale_alpha_continuous(limits=c(0,0.2),breaks=seq(0,0.2,by=0.025))+
geom_point(colour="red",alpha=0.02)+
theme_bw()
_
他の2つの回答を組み合わせる(1つはgeom_density2d
を指し、1つはサンプルデータとscale_colour_gradient
を指す):
df <- data.frame(x=rnorm(10000),y=rnorm(10000))
ggplot(df,aes(x=x,y=y))+
stat_density2d(aes(fill=..level..), geom="polygon") +
scale_fill_gradient(low="blue", high="green")
scale_colour_gradient()
もあります
df <- data.frame(x=rnorm(10000),y=rnorm(10000))
ggplot(df, aes(x,y,colour=y)) + geom_point() + scale_colour_gradient(low="blue",high="red")