Geom_area plot with areas and contours ggplot

I am trying to create a complex geom_area graph, but I would like to outline each section of the site (works in the first "red" area, but not in blue) with a line. Here is my best attempt, but I can't figure out how to make the line style complicated. Ideas?

example

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')) 
+6
source share
3 answers

To add an outline to the area, just change the colour :

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

But to draw lines, do the following:

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

enter image description here

+7
source

I made the line width very large to illustrate the difference.

 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')) 

enter image description here

+3
source

The error was that you set position = "stack" inside aes (). Change to

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

... and that's all right.

+3
source

Source: https://habr.com/ru/post/924873/


All Articles