ggplot中出现错误:“Error in grid.Call(”L_textBounds“, as.graphicsAnnot(x$label), x$x, x$y, … ”

13

我试图在ggplot中制作一个条形图,在其中通过强制一些标签为空字符串,即为"",来指定要显示哪些标签。但是,我遇到了以下错误:

Error in grid.Call("L_textBounds", as.graphicsAnnot(x$label), x$x, x$y,  
: Polygon edge not found (zero-width or zero-height?) 

尝试这样做时会出错。

以下代码将重现此错误。

希望有人能解释为什么我不能像我所做的那样操作。

library(ggplot2)

dataset<-matrix(ncol=3,nrow=12)
colnames(dataset)<-c("Score","Action","Bin")
dataset[1:9,1]<-c(1,2,3,-2,7,10,12,3,4)
dataset[1:9,2]<-rep(1,9)
dataset[10:12,1]<-c(-1,-2,-3)
dataset[10:12,2]<-rep(2,3)
dataset[1:12,3]<-as.character(cut(dataset[1:12,1:1],breaks=4))
myDataset<-as.data.frame(dataset)

chosenbreaks<-as.vector(unique(dataset[1:12,3]))
chosenlabels<-as.vector(c(chosenbreaks[1],"","",chosenbreaks[4]))

fullplot<-ggplot(myDataset, aes(Bin, fill=Action)) 
 + geom_bar(position="stack") 
 + opts(axis.text.x = theme_text(angle = 45,size=8)) 
 + scale_x_discrete("test",breaks=chosenbreaks,labels=chosenlabels)

fullplot

提前感谢您,

Christian


非常好的努力,Christian。这段代码在我的机器上执行没有问题。你能否在你的问题中粘贴sessionInfo()的结果?你可能有一个旧版本的ggplot2。 - Andrie
这里是 @Chase,@Andrie,@Sam:sessionInfo() R版本2.12.2(2011-02-25)平台:i386-pc-mingw32/i386(32位)语言环境:[1] LC_COLLATE=Danish_Denmark.1252 LC_CTYPE=Danish_Denmark.1252 [3] LC_MONETARY=Danish_Denmark.1252 LC_NUMERIC=C [5] LC_TIME=Danish_Denmark.1252 已加载的基本包:[1] grid stats graphics grDevices utils datasets methods [8] base 其他已加载的包:[1] ggplot2_0.8.9 proto_0.3-9.1 reshape_0.8.4 plyr_1.4 通过命名空间加载(未附加):[1] tools_2.12.2 - Christian Bøhlke
@Ista 在我发帖之前就看到了那篇文章,但是它没有提供具体的解决方案。它在描述的情况下有效,但正如在那里也指出的那样;问题的根本原因并没有得到解决。我尝试切换到另一台安装了R 2.12.1的机器,但仍然出现相同的错误。 - Christian Bøhlke
@Andrie 我没有收到任何警告,所以无从下手 :-( 我正在尝试更新使用的软件包,但目前还没有帮助。 - Christian Bøhlke
显然这是一个与OSX相关的报告/解决方案的重复。有人可以帮我看看吗?OP是否说他正在使用Mac?(i386-pc-mingw32 / i386对我来说很陌生。)我在Windows 7上使用不同的工作流程时遇到了这个错误,所以这是另一个例子,热心的编辑投票使每个人的生活更加复杂吗? - geotheory
显示剩余6条评论
2个回答

12

我更新了我的软件包,重新启动了计算机,突然它就能工作了。我不知道为什么,但我很高兴它现在能工作了。非常感谢所有贡献者 - SO真的很棒!


1
当我同时运行具有特定字体的ggplots并安装Microsoft Office时,遇到了相同的问题。重启对我也起作用。我使用的是OSX 10.8.4和R 3.0。 - metasequoia
和我一样,我刚安装完微软办公套件,重启后问题解决了。 - Dan

6

我曾经在Mac电脑上遇到同样的问题。我使用了Font Book应用程序删除了一些重复的字体。问题是,这些字体的重复项已经被禁用了(它们在一年前或更早时曾在NeoOffice中引起问题)。我不知道为什么这样做有效。 (请注意,我删除了我认为是这些字体的旧版本--其中包括Arial,Times和Palatino等字体。)也许这可以解决问题,但我不确定。


同样的问题,但我没有启用重复项,我尝试通过删除字体缓存并添加字体来解决这个问题,但是它时不时地会出现。 - Konrad
你是如何准确地找到重复项的? - wolfsatthedoor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接