根据数据(R)更改geom_point颜色

问题描述 投票:0回答:1

我正在尝试根据数据的第三列更改绘制点的颜色。我是R的新手,但我怀疑我需要遍历数据框并由此创建一个新的数据框?

数据文件示例:

lat,lon,env 
100,30,water
102,32,soil

我想将颜色更改为类似:

if (env = "water") { color = "blue" }

else if (env = "soil") { color = "black" }

完整代码:

library(maptools)
library(maps)
library(ggmap)

importedData <- read.csv("TestData.csv")

lat = importedData$lat
lon = importedData$lon
env = importedData$env
df <- as.data.frame(cbind(lat,lon))

#color = ?????

mp <- NULL
mapWorld <- borders("world", colour="gray50", fill="gray50") 
mp <- ggplot() +   mapWorld

mp <- mp+ geom_point(aes(x=lon, y=lat) ,color=color, size=3) 
mp
r ggplot2 ggmap
1个回答
0
投票

您希望将所有变量都放在一个数据框中。然后将color放在aes内,并将其定义为数据框中的一列。不使用映射附加项,您可以使用;

library(ggplot2)

lat <- data.frame(lat = 1:10)

lon <- data.frame(lon = 11:20)

env <- data.frame(env = rep(c("soil", "water"), 5),
              stringsAsFactors = F)

test_data <- cbind(lat, lon, env)                  

ggplot(data = test_data) +
  geom_point(aes(x = lat, y = lon, color = env)) + # color inside the aes
  scale_color_manual(values = c("black", "blue")) # set the colors here
© www.soinside.com 2019 - 2024. All rights reserved.