我正在使用以下数据集:
head(trip_3)
TIP LON LAT
1 0 -73.866 40.741
2 10.0 -73.906 40.707
3 1.2 -73.706 40.738
4 2.0 -73.946 40.640
5 0 -73.946 40.625
6 1.5 -73.986 40.602
我能够生成以下地图来呈现具有高和低平均小费值的点:
我用以下代码实现了它:
nyc_map + geom_point(data=as.data.frame(trip_3), aes(x=LON, y=LAT, fill=TIP), size=3,
shape=21, alpha=0.6, position="jitter") + scale_fill_continuous(low="white", high="#FF0033")
现在我想得到一张地图,显示高低提示区域(密度)但不使用积分 - 我希望得到这样的结果:
但它会计算点数,而不是基于TIP值。实现我之前描述的内容会很棒。这是我使用的代码:
nyc_map + stat_density2d(aes(x=LON, y=LAT, fill = ..level..), size=3,
bins=10, data=as.data.frame(trip_3), geom="polygon")
如何使stat_density2d依赖于TIP而不是点数?
答案 0 :(得分:2)
试试geom_contour。它允许您将第三个变量指定为z。 geom_contour将在相同的TIP区域绘制线条,如地形图。
nyc_map + geom_contour(aes(x=LON, y=LAT, z=TIP, fill=TIP), color="white")
如果您希望它在线条之间加以遮挡,您也可以使用stat_contour。
nyc_map + stat_contour(aes(fill=..level..), geom="polygon", binwidth=250, alpha=.5)
这是一个例子。白线由geom_contour绘制。着色由stat_contour完成。