我有这些数据:
dt1 <- structure(list(yr = 2004:2010, X = c(0.637, 0.9701, 0.701, 0.4535, 0.5058, 0.4698, 0.6228), lower = c(0.4254, 0.6442, 0.4699, 0.2929, 0.3311, 0.3213, 0.4276), upper = c(0.8614, 1.32, 0.955, 0.6261, 0.6901, 0.6276, 0.8385)), .Names = c("yr", "X", "lower", "upper"), row.names = 50:56, class = "data.frame")
dt2 <- structure(list(yr = 2004:2010, X = c(0.1753, 0.2872, 0.3038, 0.1994, 0.2486, 0.235, 0.2604), lower = c(0.1059, 0.1747, 0.1879, 0.1174, 0.1542, 0.1507, 0.1704), upper = c(0.2554, 0.4121, 0.4319, 0.2876, 0.3542, 0.3222, 0.3588)), .Names = c("yr", "X", "lower", "upper"), row.names = 8:14, class = "data.frame")
我可以像这样使用 ggplot:
ggplot(dt1, aes(x=yr, y=X, group=1, ymin = lower, ymax = upper)) +
geom_ribbon(alpha = 0.2) +
geom_line() +
geom_point(shape=21, size=3, fill="blue") +
theme_gray(12) +
opts(panel.background = theme_rect(fill='grey80')) +
ylim(0,1.7)
...对于 dt2 也是如此:
现在我想在同一张图上显示两个图。我该怎么做?
最佳答案
我会向两个数据帧(基于原始数据帧的名称)添加一个新变量(“dt”),然后将它们绑定(bind)到一个新的数据帧(dt3)中
dt1[,"dt"]<-"dt1"
dt2[,"dt"]<-"dt2"
dt3<-rbind(dt1,dt2)
dt3
> yr X lower upper dt
50 2004 0.6370 0.4254 0.8614 dt1
51 2005 0.9701 0.6442 1.3200 dt1
52 2006 0.7010 0.4699 0.9550 dt1
53 2007 0.4535 0.2929 0.6261 dt1
54 2008 0.5058 0.3311 0.6901 dt1
55 2009 0.4698 0.3213 0.6276 dt1
56 2010 0.6228 0.4276 0.8385 dt1
8 2004 0.1753 0.1059 0.2554 dt2
9 2005 0.2872 0.1747 0.4121 dt2
10 2006 0.3038 0.1879 0.4319 dt2
11 2007 0.1994 0.1174 0.2876 dt2
12 2008 0.2486 0.1542 0.3542 dt2
13 2009 0.2350 0.1507 0.3222 dt2
14 2010 0.2604 0.1704 0.3588 dt2
对于这个 dt3 数据框,您的代码在组更改为新 variabel 的名称时工作得很好
ggplot(dt3, aes(x=yr, y=X, group=dt, ymin = lower, ymax = upper)) +
geom_ribbon(alpha = 0.2) +
geom_line() +
geom_point(shape=21, size=3, fill="blue") +
theme_gray(12) +
opts(panel.background = theme_rect(fill='grey80')) +
ylim(0,1.7)
更改点和线的颜色(添加:colour=dt,linetype=0,更改:而不是 fill="blue":aes(fill=dt))。最后两行是自定义颜色。
myplot<-ggplot(dt3, aes(x=yr, y=X, group=dt, colour=dt,ymin = lower, ymax = upper)) +
geom_ribbon(alpha = 0.2, linetype=0)+ geom_line() +
geom_point(shape=21, size=3, aes(fill=dt)) +
theme_gray(12) +
opts(panel.background = theme_rect(fill='grey80')) +
ylim(0,1.7)
myplot<-myplot+ scale_color_manual(values=c("red", "blue"))
myplot<-myplot+ scale_fill_manual(values=c("red", "blue"))
myplot
关于r - 在 ggplot 中添加一个带边界的新图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11602093/