将数据添加到现有的ggplot2图中

qfd*_*qfd 2 r ggplot2

我在cars数据集上使用ggplot2包.我已经创建了一个基于制造商的网格和按类编码的颜色.

我想要做的是:从数据集mdat.Data添加到网格中的每个绘图应该表示为数据点.我希望看到的输出是mdat中的数据在每个图中表示为点,类应该添加到图例中,我希望每个点用不同的颜色和形状表示.我不确定如何做到这一点,任何帮助表示赞赏.

非常感谢!

## Sample data
   p <- ggplot(mpg, aes(x=hwy, y=cty))
   p<- p + facet_grid(. ~ manufacturer) + facet_wrap(~manufacturer) 
   p<- p + geom_point(aes(colour = class), size = 7)
   p<- p + scale_colour_brewer()
   p<- p + geom_point(shape = 1, size = 7,  alpha = I(0.7))
   print(p) 



 ##now add on the randomn portfolios on another grid
   hwy = c("35", "40", "25")
   cty = c("20", "25", "10")
   mdat <- data.frame(hwy,cty)
   mdat$class <- c("generic1", "generic2", "generic3")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Did*_*rts 5

首先,在数据框中mdat不要使用数字周围的引号,因为这会使它们成为字符.

mdat <- data.frame(hwy = c(35, 40, 25),
                   cty = c(20, 25, 10))
mdat$class <- c("generic1", "generic2", "generic3")
Run Code Online (Sandbox Code Playgroud)

如果你需要用不同颜色表示那些新点然后对现有点进行分类,那么最好使用允许设置填充的形状,因此它们使用不同的比例.

p+geom_point(data=mdat,aes(hwy,cty,shape=class,fill=class),size=7)+
  scale_shape_manual(values=c(21,22,23))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述