我有三列:纬度,经度和价格。 我想绘制一个图表,其中x轴为lat,y轴为long。点的颜色由价格值决定。 (0-50 $ - 红色,50-100美元蓝色等)。我尝试使用ggplots但没有找到任何可以根据提供的范围给点着色的东西。
latitude longitude price
40.8520537789 -73.7886796346 100
40.8411441603 -73.7830522867 100.4
40.8500238142 -73.7893275949 102
答案 0 :(得分:1)
你可以使用plot()函数。
这是data.table(或者,您也可以使用data.frame)
> dt
latitude longitude price
1: 40.85205 -73.78868 100.0
2: 40.84114 -73.78305 100.4
3: 40.85002 -73.78933 102.0
您可以通过以下代码找到每行的颜色。
color_val <- ifelse(dt[['price']] >= 0 & dt[['price']] <= 50,"red",ifelse(dt[['price']] > 50 & dt[['price']] <= 100,"blue","black"))
或通过@thelatemail提到的方法:
cut(dt$price, c(0,50,100,Inf), labels=c("red","blue","black"))
现在,您可以通过此命令绘制数据:
plot(x = dt[['latitude']],y = dt[['longitude']],col = color_val)
注意:这只是在x-y坐标上的正常绘图。