economics{ggplot2}
データセットから 2 つの時系列の次の簡単なプロットを取得します。
require(dplyr)
require(ggplot2)
require(lubridate)
require(tidyr)
economics %>%
gather(indicator, percentage, c(4:5), -c(1:3, 6)) %>%
mutate(Y2K = year(date) >= 2000) %>%
group_by(indicator, Y2K) %>%
ggplot(aes(date, percentage, group = indicator, colour = indicator)) + geom_line(size=1)
21 世紀のすべての点、つまり が に等しい観測値について、linetype
を「実線」から「破線」 (および場合によっては線も)に変更したいと考えています。size
Y2K
TRUE
私はやったgroup_by(indicator, Y2K)
が、コマンド内では複数のレベルでggplot
使用できないように見えるので、今のところ線のプロパティが異なるだけです。group =
indicator
質問: このセグメント化された線の外観を実現するにはどうすればよいですか?
更新:私の好みの解決策は、@sahoangによるものからわずかに微調整することです:
economics %>%
gather(indicator, percentage, c(4:5), -c(1:3, 6)) %>%
ggplot(aes(date, percentage, colour = indicator)) +
geom_line(size=1, aes(linetype = year(date) >= 2000)) +
scale_linetype(guide = F)
これにより、@Roland のgroup_by
コメントが削除され、filter
手順により、時系列が Y2K ポイントで接続されることが保証されます (データが年ベースの場合、そうでない場合は視覚的な不連続性が生じる可能性があります)。