使用点图将图例添加到ggplot2线

时间:2019-01-14 07:49:06

标签: r ggplot2 legend scale-color-manual

我对ggplot2中的图例有疑问。我设法在同一张图中绘制两条线和两个点,并希望使用两种颜色添加图例。这是使用的代码

P <- ggplot() + geom_point(data = data_p,aes(x = V1,y = V2),shape = 0,col = "#56B4E9") + geom_line(data = data_p,aes(x = V1,y = V2),col = "#56B4E9")+geom_point(data = data_p,aes(x = V1,y = V3),shape = 1,col = "#009E73") + geom_line(data = data_p,aes(x = V1,y = V3),col = "#009E73")

,输出为 enter image description here

我尝试使用scale_color_manual和scale_shape_manual和scale_line_manual,但是它们不起作用。

P + scale_color_manual(name = "group",values = c('#56B4E9' = '#56B4E9','#009E73' = '#009E73'),
                   breaks = c('#56B4E9','#009E73'),labels = c('B','H')) +

I want it like this

这是对您有帮助的简单数据。

5   0.49216 0.45148  
10  0.3913  0.35751  
15  0.32835 0.30361

data_p

1 个答案:

答案 0 :(得分:0)

我将分两个步骤解决这个问题。

通常,为了获得指南中的内容,ggplot2希望您将诸如颜色之类的“美学”放入aes()函数中。我通常在ggplot()内部执行此操作,而不是针对每个“ geom”单独执行此操作,尤其是如果在单个数据帧中一切都有意义的话。

我的第一步是稍微重新制作数据框。我将使用软件包tidyr(tidyverse的一部分,例如ggplot2,它非常适合重新格式化数据并值得您随时学习),并做类似的事情

template<class T> inline stateid_t GetStateID(T&&) {
    return GetStateID<T>(); 
}