再投稿して申し訳ありませんが、私の問題を反映したデータのより良い実例があります。データが欠落している場合でも一貫したカスタム カラーを提供する方法を見つけました (たとえば、以下の例で Species が setosa を省略した場合、色は一貫したままになるはずです)。しかし、今では geom_segments を「回避」パラメーターに従うことができません。また、「ジッター」や、position_jitter(width=0.25) を使用したカスタム ジッターも試しました。
colours <- c("#FF0000", "#33CC33", "#CCCCCC", "#FFA500", "#000000" )
iris$Month <- rep(seq(from=as.Date("2011-01-01"), to=as.Date("2011-10-01"), by="month"), 15)
d<-aggregate(iris$Sepal.Length, by=list(iris$Month, iris$Species), sum)
d$quota<-seq(from=2000, to=60000, by=2000)
colnames(d) <- c("Month", "Species", "Sepal.Width", "Quota")
d$Sepal.Width<-d$Sepal.Width * 1000
g1 <- ggplot(data=d, aes(x=Month, y=Quota, color="Quota")) + geom_line(size=1)
g1 + geom_segment(data=d, mapping=aes(x=Month, y=0, ymax=Sepal.Width, yend=Sepal.Width, xend=Month, group=Species, color=Species, size=1), position="dodge") + scale_color_manual(values=colours)
geom_segments が重なり合っているので、隣り合わせにしたいと思います。以前は、各セグメントを独自のレイヤーで 1 つずつ作成し、x 軸をオフセットしました (月 + 5、月 + 10 など)。しかし、そのように各行のカスタム色を取得できませんでした.
ご指導ありがとうございます。