我对R中的ggplot函数相当新。目前,我正在努力为我手工构建的给定数据集生成一个图例。为简单起见,假设这是我的数据集:
rawdata<-data.frame(matrix(c(1,1,1,
2,1,-1,
3,-1,-1,
4,-1,1
4,-2,2),5,3,byrow=TRUE))
names(rawdata)<-c("Town","x-coordinate","y-coordinate")
rawdata[,1]<-as.factor(rawdata[,1])
现在,使用ggplot,我试图找出如何在散点图上生成图例。到目前为止,我已经完成了以下工作:
p1<-ggplot(data=rawdata,aes(x=x.coordinate,y=y.coordinate,fill=rawdata[,1]))
+geom_point(data=rawdata,aes(x=x.coordinate,y=y.coordinate))
我使用上面的代码
生成以下内容我了解到要设置颜色坐标,我需要使用colour=rawdata[,1]
函数中的参数geom_point
来为点着色。但是,当我尝试这个时,我得到以下错误代码:
Error: Aesthetics must be either length 1 or the same as the data (4): colour
我知道这与矢量的长度有关,但截至目前,我完全不知道如何解决这个小问题。
答案 0 :(得分:1)
geom_point()
需要colour
,而不是fill
。并且,在将数据传递到ggplot(data = ..)
之后,无需再将其传递到geom_point()
。
我还修复了您的示例中df
的创建错误。
rawdata<-data.frame(matrix(c(1,1,1,2,1,-1,3,-1,-1,4,-1,1,4,-2,2),5,3,byrow=TRUE))
names(rawdata)<-c("Town","x.coordinate","y.coordinate")
rawdata[,1]<-as.factor(rawdata[,1])
library(ggplot2)
ggplot(data=rawdata,aes(x=x.coordinate,y=y.coordinate,colour=Town)) +
geom_point()