如何根据每个 geom_point 在列中的分类方式使每个 geom_point 变成不同的颜色?

How do I make each geom_point into a different color based on how it is classified in a column?

我从一个更大的数据集中获取了纬度和经度列,并且想知道如果每个几何点属于这些分区类别之一,我将如何使每个几何点具有不同的颜色。

> summary(dataset)
    Latitude       Longitude          Zoning  
 Min.   :40.66   Min.   :-73.92   R6     :18  
 1st Qu.:40.66   1st Qu.:-73.91   M1-1   : 5  
 Median :40.67   Median :-73.91   M1-4   : 5  
 Mean   :40.67   Mean   :-73.91   C4-3   : 4  
 3rd Qu.:40.67   3rd Qu.:-73.91          : 3  
 Max.   :40.68   Max.   :-73.90   C2-3/R6: 1  
                                  (Other):13  

我在下面使用它来获取我需要的子集并制作另一个数据集。

dataset <- (subset(dataset,select=c(grepl("Longitude|Latitude|Zoning",names(dataset)))))

我一直在尝试使用下面的这个,但我 运行 出错了。

mymap <- get_googlemap("Brownsville, New York City", zoom=14)
ggmap(mymap) + geom_point(aes(x=Longitude, y=Latitude), data= distinct(dataset), color = c("red","green3","blue","Yellow","orange","pink") [unclass(dataset$Zoning)],size=1.0)

如有任何帮助,我们将不胜感激。

我正计划为这个应用程序弄清楚它,然后为其他类别(如每平方米价格)进行计算。英尺,单位数量,资本化率。建造年份,售出天数。

我的教授给我发了一个用 citibike 数据做的例子。

mymap <- get_googlemap("Madison Square Park, New York", zoom=13)
citibike1 <- citibike %>% group_by(lat, lon) %>% summarize(N=n())
ggmap(mymap) + geom_point(aes(x=lon, y=lat, colour=N, size=N), data=citibike1, alpha=0.5) +
scale_colour_gradient(low = "black", high="red")

Makes dot color change based on how "hot" the citibike location is

此外,这里的 summarize(N=n()) 是什么意思?

是否可以将这方面的内容应用于建造年份和售出天数等类别。

以下代码应该适用于您的数据。 'Zoning' 变量似乎被设置为一个因素,因此颜色输出应该是一组离散颜色,而不是像您教授的示例中那样的渐变。

library(dplyr)
library(ggplot2)
library(ggmap)
library(ggthemes)

mymap <- get_googlemap("location of data points", zoom=13)

dataset %>% 
ggplot() + 
geom_point(aes(x = Longitude, y = Latitude, colour = Zoning)) + 
theme_map()

这段代码也应该格式化成类似地图的样子。请注意,您需要在 get_googlemap() 函数中输入数据点的位置,有时为这些点选择正确的缩放级别需要反复试验!

如果您对此有任何问题或者它不符合您的要求,请告诉我。谢谢!