9

スタックされたgeom_areaプロットを作成しようとしていますが、各エリアプロット(最初の「赤」の領域で機能しますが、青では機能しません)の輪郭を線で囲みます。これが私の最善の試みですが、線種を積み重ねる方法もわかりません。アイデア?

例

df= data.frame(Time=as.numeric(strsplit('1939 1949 1959 1969 1979 1989 1999 2009 2019 2029 2039 2049 1939 1949 1959 1969 1979 1989 1999 2009 2019 2029 2039 2049', split=' ')[[1]] ),
               Acres=as.numeric(strsplit('139504.2 233529.0 392105.3 502983.9 685159.9 835594.7 882945.1 1212671.4 1475211.9 1717971.7 1862505.7 1934308.0 308261.4 502460.8 834303.1 1115150.7 1430797.8 1712085.8 1973366.1 1694907.7 1480506.0 1280047.6 1164200.5 1118045.3', split=' ')[[1]] ),
               WUClass= strsplit('DenseUrban DenseUrban DenseUrban DenseUrban DenseUrban DenseUrban DenseUrban DenseUrban DenseUrban DenseUrban DenseUrban DenseUrban Urban Urban Urban Urban Urban Urban Urban Urban Urban Urban Urban Urban', split=' ')[[1]]   
               )

a=ggplot(df,aes(x = Time,y = Acres,fill=WUClass))+ geom_area( position = 'stack'  )
plot(a)
a+ geom_line(aes(position = 'stack'))
4

3 に答える 3

9

エリアにアウトラインを追加するには、colour:を変更するだけです。

ggplot(df,aes(x = Time,y = Acres,fill=WUClass)) +
  geom_area( position = 'stack') +
  geom_area( position = 'stack', colour="black", show_guide=FALSE)

しかし、線を引くには、次のようにします。

ggplot(df,aes(x = Time, y = Acres, fill=WUClass, group=WUClass)) +
  geom_area() + geom_line(aes(ymax=Acres), position="stack")

ここに画像の説明を入力してください

于 2012-09-07T18:13:10.263 に答える
6

違いを説明するために、線幅を非常に大きくしました。

ggplot(df,aes(x = Time, y = Acres, fill = WUClass)) + 
geom_area( position = 'stack', linetype = 1, size =2 ,colour="black" , 
show_guide=FALSE) +
geom_line(aes(position = 'stack'))

ここに画像の説明を入力してください

于 2012-09-07T18:16:24.427 に答える
5

エラーは、aes()内にposition="stack"を配置していたことだけでした。への変更

a=ggplot(df,aes(x = Time,y = Acres, fill=WUClass))+
                   geom_area( position = 'stack'  )
a +geom_line( position = 'stack'  )

...そしてすべてが大丈夫です。

于 2012-09-07T18:55:39.620 に答える