R 在空绘图中获取图例着色

R 在空绘图中获取图例着色,r,ggplot2,R,Ggplot2,在展示实际数据之前,我想做一个与有数据的图相同的图,但是没有数据点。这有助于我解释如何解释这样一个情节,而不会让观众因情节中的实际数据而分心 因此,在下面的代码中,我基本上希望将geom_point()与geom_blank()交换。没问题 但是,这也会从打印代码创建的图例中删除颜色和大小信息。有办法把这个拿回来吗 ggplot(vas, aes(x=time, y=pain, colour=light.color, size=light.intensity)) + #geom_point

在展示实际数据之前,我想做一个与有数据的图相同的图,但是没有数据点。这有助于我解释如何解释这样一个情节,而不会让观众因情节中的实际数据而分心

因此,在下面的代码中,我基本上希望将
geom_point()
geom_blank()
交换。没问题

但是,这也会从打印代码创建的图例中删除颜色和大小信息。有办法把这个拿回来吗

ggplot(vas, aes(x=time, y=pain, colour=light.color, size=light.intensity)) + 
  #geom_point(na.rm=FALSE) +
  geom_blank() + 
  facet_wrap(~ppno) +
  scale_colour_manual(values=cols) +
  scale_y_continuous(name="VAS Pain (a.u.)") +
  scale_x_continuous(name="Time (minutes)")

将颜色指示恢复到图例中的正确方法是什么?现在,它们只显示某个参数(颜色或大小)的不同级别的值,而不显示与某个级别相关的实际图形元素(颜色或点的大小)。

能否绘制两个几何点()-一个与背景颜色相同

ggplot(cars, aes(x=speed, y=dist))+
geom_point(aes(col=speed))+
geom_point(colour="white")+
theme_bw()

将实际点隐藏在绘图窗口外如何?大致如下:

ggplot(cars, aes(x=speed+100, y=dist))+ #move x values to the right
  geom_point(aes(col=speed))+
  scale_x_continuous(at=seq(5,125,by=5), limits=c(0,30)) #set plotting window

最后,我采纳了Aniko的建议(最初我无法工作,所以被抛弃了,很不公正),我想出了以下代码

vas2 <- vas
vas2$time <- vas2$time+181
pp <- p %+% vas2 #p is the above plot assigned to a variable.
pp + scale_x_continuous(name="Time (minutes)", limits=c(0,180)) 

vas2一个简单的方法是使用大小选项:

ggplot(vas, aes(x=time, y=pain, colour=light.color, size=light.intensity)) 
 + geom_point(size=0)

谢谢你的建议!我已经想到了这个想法,但放弃了它,因为我更喜欢ggplot()使用的默认灰度网格。因此,在这种情况下,很难找到消失在背景中的正确颜色(也因为每个点必须有两种颜色,一种用于背景,当它与网格线相交时,也是白色)。这是有道理的。你总是可以只画一个传奇,一个空的情节。有点像这样: