如何更新这个过时的例子,以便ggplot2不会给出"错误:使用主题代替"

时间:2014-05-26 08:15:58

标签: r ggplot2 lpsolve

我使用lpsolveapi找到了一个很棒的线性编程示例。在R博客上提到过,可以找到原始帖子的链接here。 Rscript可以从Github here下载。

问题是该代码基于ggplot2预版本0.9.1的版本。因此,在运行示例时,错误消息为Error: Use 'theme' instead. (Defunct; last used in version 0.9.1)

在CRAN上,建议是:

Error : Mapping a variable to y and also using stat="bin".
 With stat="bin", it will attempt to set the y value to the count of cases in each group.
 This can result in unexpected behavior and will not be allowed in a future version of ggplot2.
 If you want y to represent counts of cases, use stat="bin" and don't map a variable to y.
 If you want y to represent values in the data, use stat="identity".
 See ?geom_bar for examples. (Defunct; last used in version 0.9.2)

据我所知,代码必须根据更新版本的ggplot2进行重新制定,但那是我遇到的问题。作为我的初学者,我不知道从哪里开始。我尝试不分配给我,我尝试使用stat='bin'stat='identity'。而不是我发布有错误的混乱代码,我宁愿询问是否可以更新过时的文件。

以下是代码的一部分,如果更新,我可以复制到其他部分:

results<-data.frame(cargo=rep(cargo$type, 3), 
wagon=as.vector(sapply(train$wagon,     
FUN=function(x) rep(x, NROW(cargo)))), solution=get.variables(lpmodel))

r1<-ggplot(results, aes(x=cargo, y=solution, fill=wagon)) + 
    geom_bar(color='black', position='dodge') + 
    geom_text(aes(label=solution), size=2.5, position=position_dodge(width=1), vjust=-.4) + 
    scale_fill_brewer(palette='Set1') + 
    facet_grid(.~wagon) + 
    opts(title='Planning result', legend.position='none') + 
    ylab('Solution (tonnes)')

1 个答案:

答案 0 :(得分:3)

试试这个......看起来就像你所提到的那样。

r1<-ggplot(results, aes(x=cargo, y=solution, fill=wagon)) + 
  geom_bar(color='black', position='dodge', stat='identity') + 
  geom_text(aes(label=solution), size=2.5, position=position_dodge(width=1), vjust=-.4) + 
  scale_fill_brewer(palette='Set1') + 
  facet_grid(.~wagon) + 
  theme(title=element_text('Planning result'), legend.position='none') + 
  ylab('Solution (tonnes)')