r - 在 ggplot 中添加一个带边界的新图

标签 r ggplot2

我有这些数据:

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)

enter image description here

...对于 dt2 也是如此: enter image description here

现在我想在同一张图上显示两个图。我该怎么做?

最佳答案

我会向两个数据帧(基于原始数据帧的名称)添加一个新变量(“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  

enter image description here

关于r - 在 ggplot 中添加一个带边界的新图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11602093/

相关文章:

r - 格式化多个 geom_sf 图例

r - ggplot : recommended colour palettes also distinguishable for B&W printing?

r - 用不同的颜色绘制离散值

r - 非英语(丹麦语和挪威语)的月份缩写名称不一致

r - 合并并绘制多个等时线

R:当日出/日落时间发生变化时,将日/夜列添加到数据框中

R ggplot图例在我想要整数时给出小数

r - 使用贝叶斯图绘制来自多个模型的后验参数估计

r - 无法安装面板包

r - 获取向量中矩阵索引的列名和行名