5

次の単純な R コードがあります。

disciplines <- c("A","C","B","D","E")
# To stop ggplot from imposing alphabetical ordering on x-axis
disciplines <- factor(disciplines, levels=disciplines, ordered=T)

d1 <- c(0.498, 0.521, 0.332, 0.04, 0.04)
d2 <- c(0.266, 0.202, 0.236, 0.06, 0.06)
d3 <- c(0.983, 0.755, 0.863, 0.803, 0.913)
d4 <- c(0.896, 0.802, 0.960, 0.611, 0.994)

df <- data.frame(disciplines, d1, d2, d3, d4)
df.m <- melt(df)
graph <- ggplot(df.m, aes(group=1,disciplines,value,colour=variable,shape=variable)) +
         geom_point() +
         geom_smooth(stat="smooth", method=loess, level=0.95) +
         scale_x_discrete(name="Disciplines") +
         scale_y_continuous(limits=c(-1,1), name="Measurement")

出力は次のようになります。 ここに画像の説明を入力

信頼区間が曲線全体に沿って表示されないのはなぜですか?

ノート:

  1. fullrange=TRUE現在の出力のジグザグ形状ではなく、単一の真っ直ぐな青い線が得られるだけなので、私はしたくありません。
  2. このプロットを (0,-1] の範囲に負の値を持つ別のプロットと比較しているため、y 軸にはlimits=c(-1,1))
4

2 に答える 2

12

信頼区間の最初の 3 つのセグメントでは、範囲の上端は少なくとも部分的に範囲外です (範囲は [-1, 1] であり、軸上でわずかに拡大された範囲ではありません)。ggplotのデフォルトの動作は、部分的に範囲外にあるオブジェクトを表示しないことです。oob=scales::rescale_noneに追加することでこれを修正できますscale_y_continuous

library(scales)
graph <- ggplot(df.m, aes(group=1,disciplines,value,colour=variable,shape=variable)) +
         geom_point() +
         geom_smooth(stat="smooth", method=loess, level=0.95) +
         scale_x_discrete(name="Disciplines") +
         scale_y_continuous(limits=c(-1,1), name="Measurement", oob=rescale_none)
于 2013-10-03T00:02:40.277 に答える