17

グループごとに2つの異なる色で2つの実線をプロットしようとしていますが、それらの線の周りに同じ色の破線も追加してから、凡例を追加します。何らかの理由で、「破線」または「点線」の使用に問題があります。破線を 2 回プロットしているようです。また、凡例が正しくないため、エラーが発生しますAdding another scale for 'colour', which will replace the existing scale

私が間違っていることを理解するのを手伝ってもらえますか? データセットの例と私が試したことは次のとおりです。

x <- c(10, 20, 50, 10, 20, 50)
mean = c(52.4, 98.2, 97.9, 74.1, 98.1, 97.6)
group = c(1, 1, 1, 2,2,2) 
upper = c(13.64, 89, 86.4, 13.64, 89, 86.4)
lower = c(95.4, 99.8, 99.7, 95.4, 99.8, 99.7)
data <- data.frame(x=x,y=mean, group, upper, lower)

ggplot(data, aes(x = x, y= mean, group = as.factor(data$group), colour=as.factor(data$group))) + geom_line() + geom_point() + geom_line(data=data,aes(x=x, y=lower, group = as.factor(data$group), colour=as.factor(data$group), linetype="dotted")) + geom_line(data=data,aes(x=x, y=upper, group = as.factor(data$group), colour=as.factor(data$group), linetype="dotted")) + scale_color_manual(values=c("red", "blue")) +  scale_colour_discrete(name="Groups") 

も試しgeom_ribbonましたが、グループ化の部分はうまくいきませんでした…</p>

ggplot(data, aes(x = x, y= mean, group = group)) + geom_line() +
geom_ribbon(aes(ymin = lower, ymax = upper)) +
geom_line(aes(y = mean), colour = "Mean")) +
scale_colour_manual(name = "", values = c("Group1", "Group2"))
4

1 に答える 1

44

点線を追加するには、geom_line()内部で y 値を指定する 2 つの呼び出しを追加する必要がありますaes()。呼び出しと同じなのでdata=、引数を入れる必要はありません。通話の外に配置する必要があります。色については、1 つだけ必要です。凡例から点線パターンを削除するには、関数およびを使用して美学をオーバーライドできます。groups=ggplot()linetype="dotted"aes()scale_color_manual()guides()guide_legend()

ggplot(data, aes(x = x, y= mean, group = as.factor(data$group), 
                          colour=as.factor(data$group))) + 
  geom_line() + geom_point() + 
  geom_line(aes(y=lower),linetype="dotted") + 
  geom_line(aes(y=upper),linetype="dotted")+
  scale_color_manual(name="Groups",values=c("red", "blue"))+
  guides(colour = guide_legend(override.aes = list(linetype = 1)))

ここに画像の説明を入力

于 2013-05-01T14:50:09.110 に答える