ggplot上的direct.label错误,标有单个系列

时间:2014-04-24 21:50:01

标签: r ggplot2

我希望解决在尝试使用direct.label标记仅包含一个系列的ggplot时遇到的错误。下面是一个示例,说明如果只有一个系列,direct.label如何失败。

在我的实际数据中,我循环遍历区域并希望在子区域上使用直接标签。但是,在我的情况下, 某些 区域只有一个子区域,导致使用direct.label时出错。非常感谢任何帮助

library(ggplot2)
library(directlabels)
# sample data from ggplot2 movies data
mry <- do.call(rbind, by(movies, round(movies$rating), function(df) {
  nums <- tapply(df$length, df$year, length)
  data.frame(rating=round(df$rating[1]), year = as.numeric(names(nums)), number=as.vector(nums))
}))

# use direct labels to label based on rating
p <- ggplot(mry, aes(x=year, y=number, group=rating, color=rating)) + geom_line()
direct.label(p, "last.bumpup")


# subset to only a single rating
mry2 = subset(mry, rating==10)
p2 <- ggplot(mry2, aes(x=year, y=number, group=rating, color=rating)) + geom_line()
p2

# direct labels fails when attempting to label plot with a single series
direct.label(p2, "last.bumpup")

1 个答案:

答案 0 :(得分:1)

这确实是一个错误;包维护者已经修复了它。要获得更新版本,

install.packages("directlabels", repos="http://r-forge.r-project.org")

我刚检查过,现在一切正常。很好听!