gglpot中的2点图

时间:2018-10-01 19:52:49

标签: r ggplot2

我想使用ggplot在同一图中绘制两个比率。

我要做的是以下

plot1 <- ggplot(table3, aes(x = issue_yr, y = share1, group = 1)) + 
           geom_point() + 
           geom_line(colour="red") +
           labs(title = "Charged Off rate for each year", y="%")

  plot1 + geom_point()+ geom_line(aes(x=issue_yr, y = share2), color = "blue")

但图2的点未显示。如何添加积分?

有什么建议吗? enter image description here

1 个答案:

答案 0 :(得分:2)

最后一个geom_line是唯一映射到y = share2的几何。您可以将最后一行替换为:

plot1 + 
  geom_point(aes(y = share2)) + 
  geom_line(aes(y = share2), color = "blue")

或者,更习惯地说,您可以先将数据转换为长格式(又称“整洁”),然后再将其发送到ggplot中。像下面的代码这样的东西会将您要绘制的两列(share1和share2)合并为一个列,以一个名为share_type的新列来区分。

table3 %>% 
  gather(share_type, value, share1:share2)

然后您将在ggplot调用中映射该字段,类似这样,它将绘制您的两个系列并添加图例。

plot1 <- ggplot(table3, aes(x = issue_yr, y = value, color = share_type)) + 
           geom_line() +  # Color of the line will be mapped based on share_type
           geom_point(color = "black")  # Assumes you want all points black

当您可以使用ggplot的内置映射为您完成工作时,我认为它非常优雅。如果要手动控制各个系列的外观,则可以使用scale_color_manual()来选择要使用的颜色。