0 plot overlay r stacked ggplot2
我试图在ggplot2中制作堆积线图,其中正值堆叠在x轴上方,负值堆叠在x轴下方.我已经成功地分别堆叠了每种线型,但是无法在一个图上同时存在这两种线型.我正在寻找一些关于如何做到这一点的帮助,无论是通过叠加情节还是在单个情节上做一些有创意的事情.
我下面的代码使用了一个带有堆叠geom_line图的简单ggplot."类型"的一半是关于时间的正值,而"类型"的另一半都是负值.
p <- ggplot(dataForm, aes(x=Time,y=Value,group=Type),colour=factor(Type))
p + geom_line(aes(fill = Type),position = "stack")
Run Code Online (Sandbox Code Playgroud)
我尝试了另外一种单独指定正值和负值的方法,但没有成功:
p <- ggplot(dataForm, aes(x=Time,y=Value,group=Type),colour=factor(Type))
p + geom_line(data = data1,aes(fill = Type),position = "stack")
p + geom_line(data = data1,aes(fill = Type),position = "stack")
Run Code Online (Sandbox Code Playgroud)
任何有关如何做到这一点的建议都非常感谢.谢谢.
library(ggplot2)
library(plyr)
data = read.table(text="Time Type Value
1 a 8
2 a 10
3 a 10
4 a 5
5 a 3
1 b 9
2 b 5
3 b 7
4 b 8
5 b 3
1 c -3
2 c -1
3 c -5
4 c -4
5 c -7
1 d -11
2 d -3
3 d -9
4 d -6
5 d -6", header=TRUE)
p <- ggplot(data, aes(x=Time))
p <- p + geom_line(subset = .(Type %in% c('a', 'b')),
aes(y=Value, colour = Type),
position = 'stack')
p <- p + geom_line(subset = .(Type %in% c('c', 'd')),
aes(y=Value, colour = Type),
position = 'stack')
p
Run Code Online (Sandbox Code Playgroud)
要产生这个:

并且,为了更好地衡量,带有水平线的面积图:
p <- ggplot(data, aes(x=Time))
p <- p + geom_area(subset = .(Type %in% c('a', 'b')),
aes(y=Value, fill=Type),
position = 'stack')
p <- p + geom_area(subset = .(Type %in% c('c', 'd')),
aes(y=Value, fill = Type),
position = 'stack')
p <- p + geom_hline(yintercept=0)
p
Run Code Online (Sandbox Code Playgroud)

| 归档时间: |
|
| 查看次数: |
2083 次 |
| 最近记录: |