R,ggplot2添加带有不同数据帧(不同大小)的图例

时间:2015-09-17 16:53:17

标签: r ggplot2 legend

我正在尝试使用ggplot2创建一个简单的geom_point图,但我无法获得一个传奇。我有两个数据框,我正在绘制不同的长度(~2000行对~6000行)。

我尝试添加像'scale_shape_manual(values = c(21,23)'这样的东西来弹出它,但这没有用。我也试过在'aes'中添加'shape = 21'并'shape = 23'进入他们各自的geom_point调用,但我收到错误'错误:连续值提供给离散比例'。感谢您的帮助!请参阅下面的代码示例:

x1 = c(0, 1, 2, 3, 4)
y1 = c(0.44, 0.64, 0.77, 0.86, 0.91)
x2 = c(0, 1)
y2 = c(0.42, 0.61)
df1 = data.frame(x1, y1)
df2 = data.frame(x2, y2)

g<- ggplot(df1, aes(x = (df1[,1]), y = (df1[,2]*100))) +
  geom_point(colour = 'black', size = 5, fill = 'blue', shape = 21) +
  geom_point(data = df2, aes(x = df2[,1], y = (df2[,2]*100)), 
             colour = 'black', size = 4, fill = 'white', shape = 23) +
  xlab("Consecutive Dry Years") + ylab("Percent") + ggtitle("Plot") +
  scale_y_continuous(limits=c(0, 100)) +
  scale_x_continuous(breaks=0:20) +
  scale_shape_manual(values=c(21, 23), 
                     name="My Legend",
                     labels=c("Simulated", "Historical")) +
  #   scale_fill_manual(values=c('blue', 'white'), 
  #                      name="My Legend",
  #                      labels=c("Simulated", "Historical")) +
  #   scale_colour_manual(values=c('black', 'black'), 
  #                     name="My Legend",
  #                     labels=c("Simulated", "Historical")) +
  theme_bw()
g

1 个答案:

答案 0 :(得分:1)

对于我的ggplotting,我总是把我的数据放到一个数据帧中。我记得有人说在地图上指定不同颜色存在冲突。我认为这段代码会给你一个想法:

df3 = data.frame(type=c(rep("sim",5), rep("his",2)), x = c(x1,x2), y=c(y1,y2))
g = ggplot(df3, aes(x=x,y=y*100)) + geom_point(aes(color=type)) + geom_line(aes(color=type)) +
  xlab("Consecutive Dry Years") + ylab("Percent") + ggtitle("Plot") +
  scale_y_continuous(limits=c(0, 100))
g

enter image description here