Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R ggplot2:两个不同数据集的图例_R_Ggplot2 - Fatal编程技术网

R ggplot2:两个不同数据集的图例

R ggplot2:两个不同数据集的图例,r,ggplot2,R,Ggplot2,我正在使用形状文件绘制带有ggplot的地图。然后,我使用geom_线添加圆弧。圆弧根据其类型(单向或双向)着色,然后我使用geom_点添加节点。节点根据其类型(起点、终点、节点、停车场)着色。我想要两个不同的图例:一个用于节点类型,一个用于圆弧类型。不幸的是,ggplot合并了图例,只生成一个图例 以下是代码(很抱歉,我无法提供一个可行的示例。我无法发送形状文件): cityplot这里有一个可能的解决方法。如果您可以在aes()调用中保留geom_多边形填充-如上所述,那么您可以对点使用填充

我正在使用形状文件绘制带有ggplot的地图。然后,我使用geom_线添加圆弧。圆弧根据其类型(单向或双向)着色,然后我使用geom_点添加节点。节点根据其类型(起点、终点、节点、停车场)着色。我想要两个不同的图例:一个用于节点类型,一个用于圆弧类型。不幸的是,ggplot合并了图例,只生成一个图例

以下是代码(很抱歉,我无法提供一个可行的示例。我无法发送形状文件):


cityplot这里有一个可能的解决方法。如果您可以在
aes()
调用中保留
geom_多边形
填充-如上所述,那么您可以对点使用填充形状(21是一个圆),并在
aes()
调用中设置填充属性而不是颜色。见下文:

mock_data<-
  data.frame(x=sample(1:10,20,T),
             y=sample(1:10,20,T),
             direction=sample(c("1way","2way"),20,T),
             type=sample(c("origin","destination","node","lot"),20,T))


ggplot(mock_data) +
  geom_polygon(aes(x=c(0,12,12,0),y=c(0,0,12,12),id=c(1,1,1,1)),fill="white") +
  geom_point(aes(x=x,y=y,fill=type),size=10,shape=21) + 
  geom_line(aes(x=x,y=y,color=direction),size=2) +
  scale_fill_brewer(palette="Greens") + scale_color_brewer(palette="Set1")

mock_dataCare是否可以让您的问题重现?我们无法访问您的数据。事实上,能够在我们自己的会话中使用代码会有所帮助。我想你已经看过帮助文件了吧?另一方面,我确实记得在一个单独的绘图中只能有一个色阶(或图例,我不确定)。
mock_data<-
  data.frame(x=sample(1:10,20,T),
             y=sample(1:10,20,T),
             direction=sample(c("1way","2way"),20,T),
             type=sample(c("origin","destination","node","lot"),20,T))


ggplot(mock_data) +
  geom_polygon(aes(x=c(0,12,12,0),y=c(0,0,12,12),id=c(1,1,1,1)),fill="white") +
  geom_point(aes(x=x,y=y,fill=type),size=10,shape=21) + 
  geom_line(aes(x=x,y=y,color=direction),size=2) +
  scale_fill_brewer(palette="Greens") + scale_color_brewer(palette="Set1")