R 绘制散点图并根据ggplot2中的一个分类列设置颜色

R 绘制散点图并根据ggplot2中的一个分类列设置颜色,r,ggplot2,R,Ggplot2,给出如下数据帧: structure(list(city = structure(c(1L, 3L, 4L, 2L), .Label = c("bj", "cq", "sh", "tj"), class = "factor"), area = c(1580.86, 1927.95, 532.24, 613.09), price = c(9.51, 94.42, 10.77, 8.58), le

给出如下数据帧:

structure(list(city = structure(c(1L, 3L, 4L, 2L), .Label = c("bj", 
"cq", "sh", "tj"), class = "factor"), area = c(1580.86, 1927.95, 
532.24, 613.09), price = c(9.51, 94.42, 10.77, 8.58), level = structure(c(1L, 
1L, 2L, 2L), .Label = c("a", "b"), class = "factor")), class = "data.frame", row.names = c(NA, 
-4L))
我想画一个散点图,其中
x
表示
area
y
表示
price
,同时,点的颜色仅基于
level
,这意味着只有两种颜色可以区分
a
b


如何使用
ggplot2
绘制此图?谢谢。

您可以使用以下代码来实现此目的

library(ggplot2) 
ggplot(df, aes(x = area, y = price, col=level)) + geom_point()

数据

df=structure(list(city = structure(c(1L, 3L, 4L, 2L), .Label = c("bj", 
"cq", "sh", "tj"), class = "factor"), area = c(1580.86, 1927.95, 
532.24, 613.09), price = c(9.51, 94.42, 10.77, 8.58), level = structure(c(1L, 
1L, 2L, 2L), .Label = c("a", "b"), class = "factor")), class = "data.frame", row.names = c(NA, 
-4L))

如果我想将
city
添加到点,我使用了
geom_text(aes(label=city))
,它似乎不起作用。我认为最好使用
geom_text\u repel
。是的,修改了答案以供将来参考。
df=structure(list(city = structure(c(1L, 3L, 4L, 2L), .Label = c("bj", 
"cq", "sh", "tj"), class = "factor"), area = c(1580.86, 1927.95, 
532.24, 613.09), price = c(9.51, 94.42, 10.77, 8.58), level = structure(c(1L, 
1L, 2L, 2L), .Label = c("a", "b"), class = "factor")), class = "data.frame", row.names = c(NA, 
-4L))