1

geom_area plot with area and outlines ggplot と同様に、アウトラインを使用して積み上げエリア プロットを作成しようとしています。私の変数は離散的であるため、それらを積み重ねるために geom_bar() を使用しています。コードは次のとおりです。

require(ggplot2)
require(reshape)
x = 0:4
y1 = c(3,2,2,1,0)
y2 = c(1,1,0,0,0)
data = data.frame(x,y1,y2)
data.plot <-melt(data, id.vars = "x")
cols = c(y1="darkgrey",y2="lightgrey") 
p = ggplot(data.plot,aes(x=x,y=value,fill=variable))
p +  geom_bar(aes(width=1),stat = "identity") + theme_bw() +  scale_fill_manual(values=cols) 

どちらが与える積み上げ棒グラフ

私の問題は、参照した例のようにアウトラインを追加することです。で使用できますcolour="black"geom_bar()、これによりバーの間に垂直線が追加され、非常に見苦しくなります。

これらのアウトラインを取得するための提案はありますか? ソリューションは に基づく必要はありませんgeom_bar

可能であれば、このアウトラインには重要な解釈があるため、濃い灰色の部分だけがアウトラインを持つソリューションにも興味があります。geom_line()おそらく、これは? のシフトされたバージョンに基づいている可能性があります。

4

2 に答える 2

2

を使用した別のアプローチを次に示しannotate("path")ます。この提案には、一部のパス コンポーネントの値がハードコーディングされていますが、アルゴリズムによってそれらの値を入力する方法があると思われます (おそらくgg_build().

p <- ggplot(data.plot,aes(x=x, y=value, fill=variable))
p <- p + geom_bar(aes(width=1), stat = "identity") + theme_bw() +  scale_fill_manual(values=cols)
p <- p + annotate(x=c(-.5, 0.5, 0.5, 2.5, 2.5, 3.5, 3.5),
                  y=c(3, 3,   2,   2,   1,   1,   0  ), group = 1,  "path", color = "black", size = 2)
p <- p + annotate(x=c(min(x)-.5, min(x)+0.5, min(x)+0.5, min(x)+2.5, min(x)+2.5, min(x)+3.5, min(x)+3.5),
                  y=c(max(value), max(value), max(value)- 1,  max(value)- 1,  max(value)- 2,  max(value)- 2,  min(value)), group = 1,  "path", color = "black", size = 2)
p

ここに画像の説明を入力

于 2015-06-01T13:57:45.657 に答える