首页 > 解决方案 > ocpu.rplot() 在没有标签的 html 上显示 R ggplot 但 opencpu API 结果有

问题描述

我可以通过 opencpu API 从远程 R 绘图函数获取带有文本标签(ggplot 和 ggrepel)的正确 R 图,但使用 opencpu-0.4.js 使用具有相同远程 R 绘图功能的 ocpu.rplot 调用得到错误的绘图。错误的情节上没有文字标签。

我为这个问题写了一个可重现的小例子:HTML代码:https ://github.com/cywhale/ODB/blob/master/opencpu_test/ocpu_test.html

在这个html js中,使用opcu.call rplot调用plot_test API进行绘图,使用session.getLoc()获取R/.val/png中的R图形,将两个图形放在同一个html中

运行此 html 并在我的服务器上获得可重现的结果: https ://bio.odb.ntu.edu.tw/test/ocpu_test.html

远程 R 绘图函数:plot_test()

#' generate a test graph by ggplot+ggrepel, use offical ex: https://cran.r-project.org/web/packages/ggrepel/vignettes/ggrepel.html
#' @return A ggplot graph
#' @examples plot_test()
#' @rdname plot_test
#' @export
plot_test <- function() {
  set.seed(42)
  data("mtcars")
  dat2 <- subset(mtcars, wt > 3 & wt < 4)
  # Hide all of the text labels.
  dat2$car <- ""
  # Let's just label these items.
  ix_label <- c(2,3,16)
  dat2$car[ix_label] <- rownames(dat2)[ix_label]

  g1 <- ggplot(dat2, aes(wt, mpg, label = car)) +
    geom_point(color = ifelse(dat2$car == "", "grey50", "red")) +
    geom_text_repel()

  print(g1)
}

ocpu.rplot 在上半部分和正确结果在下半部分

两个图形不同。使用 ggrepel 包的文本和标签在 ocpu.call rplot 中消失。但在 R/.val/png 中,图形是正确的。期望 ocpu.call rplot 应该返回带有标签的正确图,作为 R/.val/png 中的结果。感谢任何可能有助于澄清或解决此问题的评论。谢谢。

标签: rggplot2opencpuggrepel

解决方案


推荐阅读