我有以下数据:
date, name, bin,group, value
2017-08-19,a1,0,1,302
2017-08-19,a3,0,1,35
2017-08-19,a4,0,1,33
2017-08-19,a6,0,1,43
2017-08-19,p1,0,0,76
2017-08-19,i3,0,0,23
2017-08-19,cl,1,1,73
2017-08-19,c,1,0,2
2017-09-19,a1,0,1,302
2017-09-19,a3,0,1,35
2017-09-19,a4,0,1,33
2017-09-19,a6,0,1,43
2017-09-19,p1,0,1,76
2017-09-19,i3,0,1,23
2017-09-19,cl,1,1,73
2017-09-19,c,1,1,2
出于某种原因,我最终会得到一个不显示其中一个组的线型的情节。
这是我的代码:
p <- df %>%
ggplot(aes(y=value,x=date,color=name))+
geom_point(aes(shape=factor(bin)))+
geom_line(aes(linetype=factor(group)))+
geom_hline(aes(yintercept = 0))+
theme_minimal()
p
您可以从下图中看到其中一种线型没有显示。
如何显示其他线型?
答案 0 :(得分:1)
某些行没有显示的原因是,对于某些name
,有两个group
。结果,ggplot
没有选择显示线条的那些,并且显然决定什么都没有。
一种可能的解决方案是将group
- 值更改为每个name
的第一个值,然后绘制:
df %>%
group_by(name) %>%
mutate(group = first(group)) %>%
ggplot(aes(x = date, y = value, color = name)) +
geom_point(aes(shape = factor(bin))) +
geom_line(aes(linetype = factor(group))) +
geom_hline(aes(yintercept = 0)) +
theme_minimal()
给出了以下情节: