いくつかのグループでグラフィックを作成し、geom_boxplot()を一筋の線の上にプロットします。ただし、線が見えるようにボックスを透明に色付けするとよいでしょう。
サンプルデータは次のとおりです。
x11()
name <- c("a", "a", "a", "a", "a", "a","a", "a", "a", "b", "b", "b","b", "b", "b","b", "b", "b")
class <- c("c1", "c1", "c1", "c2", "c2", "c2", "c3", "c3", "c3","c1", "c1", "c1", "c2", "c2", "c2", "c3", "c3", "c3")
year <- c("2010", "2009", "2008", "2010", "2009", "2008", "2010", "2009", "2008", "2010", "2009", "2008", "2010", "2009", "2008", "2010", "2009", "2008")
value <- c(100, 33, 80, 90, 80, 100, 100, 90, 80, 90, 80, 100, 100, 90, 80, 99, 80, 100)
df <- data.frame(name, class, year, value)
df
私は次のようにグラフィックを描きます:
p1 <- ggplot(df, aes(year, value))
p1 <- p1 + geom_line(aes(group=name, size=name),colour="#ff2300",alpha=0.5) + facet_wrap(~ class, scales = "free_y")
p1 <- p1 + geom_boxplot(aes(group=name))
print(p1)
また、私のシステムでは、凡例の線幅が正しく表示されません。私は何か間違ったことをしていますか?前もって感謝します!
箱ひげ図にalpha
引数を追加できます。例えば:
geom_boxplot(aes(group=name), alpha = 0.8)
あなたに与える
最初に箱ひげ図を描画し、次に線を描画するように、ジオメトリの順序を変更します。しかし、あなたのグラフは意味をなさないと思います。名前を使用して行のサイズを変更するのはなぜですか?線種を変更する方が理にかなっているのではないでしょうか。また、比較が難しくなるため、ファセットでfree_yを使用しないことをお勧めします。
name <- c("a", "a", "a", "a", "a", "a","a", "a", "a", "b", "b", "b","b", "b", "b","b", "b", "b")
class <- c("c1", "c1", "c1", "c2", "c2", "c2", "c3", "c3", "c3","c1", "c1", "c1", "c2", "c2", "c2", "c3", "c3", "c3")
year <- c("2010", "2009", "2008", "2010", "2009", "2008", "2010", "2009", "2008", "2010", "2009", "2008", "2010", "2009", "2008", "2010", "2009", "2008")
value <- c(100, 33, 80, 90, 80, 100, 100, 90, 80, 90, 80, 100, 100, 90, 80, 99, 80, 100)
df <- data.frame(name, class, year, value)
df
library(ggplot2)
p1 <- ggplot(df, aes(year, value))
p1 <- p1 + geom_boxplot(aes(group=name)) + geom_line(aes(group=name, size=name),colour="#ff2300",alpha=0.5) +
facet_wrap(~ class, scales = "free_y")