生成散点图但使用三个变量

Produce a scatter plot but using three variables

这是一个我需要制作的相当奇怪的情节,希望有人能帮助我。

我的数据是这样的:

a<-c(1760,650,1210,1670,1150,1720,1900,2010,1500,1720,1430,2090,1840)
b<-c(992,1072,1522,521,851,583,868,591,794,621,767,951,740)
min_b<-c(963,1036,1405,502,834,559,806,558,741,597,725,914,725)
max_b<-c(1042,1104,1662,543,887,619,898,635,841,646,838,1018,757)
year<-c(1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010)
data<-data.frame(a,b,min_b,max_b,year)

我制作的第一个图是 a vs b,其中 minbmax 使用以下命令显示在图上:

plot(data$a, data$b)
arrows(data$a, data$min_b, data$a, data$max_b,col="black",lty=1, code=3, angle=90, length=0.1)

有什么方法可以按时间顺序(即根据年份)生成此散点图。 如有任何帮助,我将不胜感激。

非常感谢

如果不使用基础图形没关系,这个使用分面的ggplot2版本可能会很好地为您服务

这个代码是:

library(ggplot2)
# map your data to relevant axis values
ggplot(data,aes(x=a,y=b,ymin=min_b, ymax=max_b))+
# Plot you points (you can customise this)
  geom_point()+
# Plot your error bars (using ymin and ymax
  geom_errorbar()+
# split your chart by year
  facet_wrap(~year)

强制排成一行

代码变为:

ggplot(data,aes(x=a,y=b,ymin=min_b, ymax=max_b))+
  geom_point()+
  geom_errorbar()+
  facet_wrap(~year,ncol = length(year))

生成的图表是: