特定のグループによる点の束の上に線をプロットしようとしています。たとえば、私は次のようにしています。
x = rep(c('fruit', 'vegetable'), 15)
z = c(rep(c(rep('fresh', 2), rep('ripe', 2), rep('rotten', 2)), 5)
s = c(rep('pick1', 6), rep('pick2', 6), rep('pick3', 6), rep('pick4', 6), rep('pick5', 6))
y = runif(30, min=11, max=15)
low = rep(c(0, 1), 15)
y[low == 1] = y[low == 1] - 10
y[low == 0] = y[low == 0] - 5
groceries_df = data.frame(type=x, value=y, age=z, species=s)
タイプが「果物」または「野菜」のいずれかであり、年齢が「新鮮」、「熟した」、または「腐った」のいずれかであり、種が店舗からのさまざまなピックの一意のリストであるため、2 * 3=6の値があります種ごとに。これらの値は、年齢によって定義された個別のx軸にグループ化されており、タイプごとにグループ化されています(したがって、タイプごとに回避されています)。
dodge = position_dodge(width=0.9)
p = ggplot(groceries_df, aes(factor(age), value, color=factor(type), shape=factor(type))) +
geom_jitter(position=dodge) +
geom_line(data=groceries_df[groceries_df$type == 'fruit',], aes(group=factor(species)), position=dodge) +
geom_line(data=groceries_df[groceries_df$type == 'vegetable',], aes(group=factor(species)), position=dodge)
このコードは、私が望むものに非常に近いプロットを生成しますが、geom_lineがタイプではなく、種によって回避されることに気づきました。実際の線を種ごとにグループ化する必要があるにもかかわらず、回避をリダイレクトする必要があるようです(したがって、すべての年齢で、ある種の値が1つのタイプから次のタイプに遷移するのを確認できます)。回避をリダイレクトする方法はありますか?