我一直在努力在R中创造一个体面的散点图。我不会认为它太难了。
经过一些研究,在我看来ggplot
可能是一个允许大量格式化的选择。但是,我正在努力理解它是如何运作的。
我想创建两个数据系列的散点图,显示具有两种不同颜色,可能是不同形状的点,以及带有系列名称的图例。
以下是我的尝试,基于this:
year1 <- mpg[which(mpg$year==1999),]
year2 <- mpg[which(mpg$year==2008),]
ggplot() +
geom_point(data = year1, aes(x=cty,y=hwy,color="yellow")) +
geom_point(data = year2, aes(x=cty,y=hwy,color="green")) +
xlab('cty') +
ylab('hwy')
现在,这看起来几乎没问题,但是颜色不匹配(除非我突然变成了色盲)。这是为什么? 另外,如何添加系列名称和更改符号形状?
答案 0 :(得分:1)
不要构建2个不同的数据帧:
df <- mpg[which(mpg$year%in%c(1999,2008)),]
df$year<-as.factor(df$year)
ggplot() +
geom_point(data = df, aes(x=cty,y=hwy,color=year,shape=year)) +
xlab('cty') +
ylab('hwy')+
scale_color_manual(values=c("green","yellow"))+
scale_shape_manual(values=c(2,8))+
guides(colour = guide_legend("Year"),
shape = guide_legend("Year"))
答案 1 :(得分:1)
这将与您当前设置的方式一起使用:
ggplot() +
geom_point(data = year1, aes(x=cty,y=hwy), col = "yellow", shape=1) +
geom_point(data = year2, aes(x=cty,y=hwy), col="green", shape=2) +
xlab('cty') +
ylab('hwy')
答案 2 :(得分:0)
你想:
library(ggplot2)
ggplot(mpg, aes(cty, hwy, color=as.factor(year)))+geom_point()