当y范围是字符向量时,在R中绘制多边形

时间:2014-06-25 00:29:45

标签: r polygons

我之前使用的一些绘图代码是全数字或整数的数据。现在我有类似的数据,除了一列是字符数据,多边形表示我可以使用。我一直在努力解决这个问题并且无法解决我遇到的错误。求救!

我的数据是:

Dem.plotting <- data.frame(
  Group=c(1, 1, 1, 2, 2, 2, 3, 3, 3),
  Year=c("2012", "Dem", "Non-dem", "2012", "Dem", "Non-dem", "2012", 
          "Dem", "Non-dem"),
  minGDP=c(17.1, 17.3, 20.2, 19.8, 20.3, 21.7, 20.7, 21.7, 22.6),
  maxGDP=c(19.4, 20.3, 21.5, 20.5, 21.3, 21.9, 21.4, 22.5, 22.3),
  Data=data.frame(Group, Year, minGDP, maxGDP))

这是我之前成功使用的代码,但现在还没有工作:

yrange = range(Dem.plotting$Year)
xrange = range(Dem.plotting[,3:4])
plot(Year~minGDP,data=Dem.plotting,type="n",xlab="Log(GDP)",ylab="Year",
     ylim=yrange,xlim=xrange)
dens = c(NA,20,40,NA,20,40,NA,20)
ang = rep(45,times=8)
fillcol = c("white","gray","gray","black","black","black","white","gray")
for (i in 1:nrow(Dem.plotting)){
  with(Dem.plotting[i,],polygon(x=c(minGDP,maxGDP,maxGDP,minGDP),
                        y=c(Year+0.25,Year+0.25,Year-0.25,Year-0.25),
                        density=dens[Group],ang=ang,
                        col=fillcol[Group],
                        border="black"
 )
 )
}

尝试设置空图时出现以下错误:

Error in plot.window(...) : invalid 'ylim' value
In addition: Warning message:
In xy.coords(x, y, xlabel, ylabel, log) : NAs introduced by coercion

所以R不喜欢“年”字符向量,我不知道如何解决这个问题,然后在尝试绘制多边形时会产生此错误:

Error in Year + 0.25 : non-numeric argument to binary operator

据我所知,它并不适合那样的年份&#39;是字符,而不是数字,但我认为你可以使用字符数据为顶点绘制多边形?

非常感谢任何帮助!

0 个答案:

没有答案