0

私はアルバート・カイロのこの筋書きに興味をそそられます.

ここに画像の説明を入力

ggforce::bspline を使用して曲線を十分に滑らかにすることができます

ここに画像の説明を入力

ただし、日付軸がないため、途中でスプラインの色を変更する方法がわかりません。

3 つの点が 1990 年、1991 年、1992 年を表しているとします。そして、誰かが 1990 年 7 月 1 日に当選しました。この時点でスプラインの色を変更したいと思います。したがって、曲線は原点から約 (12, 5.6) までは赤で、(12, 5.6) から (17,4) までは青になります。

これを達成する方法がわかりません。

library(ggforce)
library(ggplot2)

data <- tibble (
  x = c(10, 15, 17),
  y = c(5, 7, 4)
)

ggplot(data) + 
  stat_bspline2(aes(x = x, y = y), n = 300,  geom = "bspline0", color = "red") +
  stat_bspline2(aes(x = x, y = y), n = 3,  geom = "point", color = "red") +
  geom_point(aes(x = x, y = y), color = "grey")

グループについて MA が教えてくれた内容を考えると、次のことができるコードができました。

直線セグメントの色を変更する:

# Works for straight lines
ggplot(data, aes(x=x, y=y, colour = g, group = 1)) + 
  geom_line(size = 3) + 
  geom_point() +
  scale_color_manual(values = c("A" = "red", "B" = "pink", "C" = "green", "D" = "white"))

ここに画像の説明を入力

そしてbsplineの連続色。しかし、上のプロットのように、これを個別の色にしたいと思います。

# Works with continuous color
ggplot(data, aes(x=x, y=y, colour = g, group = 1)) + 
  geom_bspline2(size = 4, n = 300) +
  scale_color_manual(values = c("A" = "red", "B" = "pink", "C" = "green", "D" = "white"))

ここに画像の説明を入力

または、このエラー、「エラー: 離散スケールに供給された連続値」:

ggplot(data) + 
  stat_bspline2(aes(x = x, y = y, color = ..group.., group = 1), n = 300,  geom = "bspline0") +
  scale_color_manual(values = c("A" = "red", "B" = "pink", "C" = "green", "D" = "white"))

それで、bspline を使用して個別のセグメントの色を手動で制御する方法を知りたいと思っています。

4

1 に答える 1