Я пытаюсь создать несколько карт в R, используя ggplot2
. Я достиг точки, где у меня есть конечная карта, которую я хочу пространственно, но мне нужно изменить форму и цвет точек в соответствии с категориальными факторами.
В этом контексте фрейм данных называется genAQ. Каждый ряд содержит долготу и широту, качество (высокое / низкое) и виды (3 сп). В конце концов, мне бы хотелось, чтобы цвет точки соответствовал видам, а форма точки соответствовала качеству.
#correct spatial map, but all points are black. This code works perfectly.
ggplot(data=world) +
geom_sf() +
geom_point(data=genAQ, aes(x=Lon, y=Lat), size=1,
shape = 19, col = "black") +
geom_polygon(data=lakes10, aes(long, lat, group = group), fill="lightblue") +
coord_sf(xlim = c(133.75, 140.52), ylim = c(-26.75, -31.30), expand=F)
Теперь я пытаюсь изменить цвет, используя виды как фактор. Если бы я кодировал с использованием функции plot, я бы написал это как
plot(genAQ$Lat~genAQ$Lon, pch=19, col=genAQ$Species).
. Используя тот же принцип, я пытаюсь применить его к исходному коду, который работает.
ggplot(data=world) +
geom_sf() +
geom_point(data=genAQ, aes(x=Lon, y=Lat), size=1,
shape = 19, col = genAQ$Species) +
geom_polygon(data=lakes10, aes(long, lat, group = group), fill="lightblue") +
coord_sf(xlim = c(133.75, 140.52), ylim = c(-26.75, -31.30), expand=F)
It возвращается с ошибкой:
Ошибка в grDevices :: col2rgb (color, TRUE): неверное имя цвета 'Amytornis modestus indulkanna'.
Так ясно ggplot
не понимает тот же язык, который я использую в функции plot()
, так как он все еще пытается прочитать цвет как цвет, а не как категориальный фактор. Я пробовал другие методы, которые я видел в StackOverflow, но я не могу найти ответ на кажущуюся простой проблему.