我之前使用的一些绘图代码是全数字或整数的数据。现在我有类似的数据,除了一列是字符数据,多边形表示我可以使用。我一直在努力解决这个问题并且无法解决我遇到的错误。求救!
我的数据是:
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;是字符,而不是数字,但我认为你可以使用字符数据为顶点绘制多边形?
非常感谢任何帮助!