私は1つの変数で複数のプロットを分割し、各プロットで別の変数に基づいて色分けします。R ggplotは特定の値の色を設定します
set.seed(12345)
dates = seq(as.Date("2000-01-01"), as.Date("2016-01-01"), by = 1)
dd = data.table(date = dates, value = rnorm(length(dates)))
dd[, year := lubridate::year(date)]
dd[, c := cut(value, c(-Inf, -3, 3, Inf))]
for (thisyear in 2000:2015) {
ggplot(dd[year == thisyear]) +
geom_ribbon(aes(x = date, ymin = -Inf, ymax = Inf, fill = c), alpha = 0.1)
}
dd[, length(unique(c)), by = year]
year V1
1: 2000 1
2: 2001 2
3: 2002 2
4: 2003 3
5: 2004 3
....
ここで、毎年同じユニークなカット値の長さを持つわけではないので、異なるプロットの色は矛盾します。さらに悪いことに、1年にすべて(-Inf,3]
値(当然ありそうもない)があり、もう1年がすべて[3,Inf)
の値を持つ場合、それらは両方とも2つのプロットで赤色になります。
(-Inf, 3]
は常に青色で、(-3,3]
は常に緑色になるように指定することはできますか?
緑色の点は '(3、Inf)'を意味しますか? –
エラーを再現できません。 'for'ループにエラーがありますか?' thisyear'は何ですか? – bVa
コードにはいくつかのタイプミスがあります:1. 2000年:2015年はおそらく '2000年に今年:2015年 'を読むべきでしょう。2.' dd [年==今年] 'は' dd [年==今年]、 –