【问题标题】:export::graph2office moves axis labels aroundexport::graph2office 移动轴标签
【发布时间】:2019-10-28 13:30:56
【问题描述】:

我用ggplot2 在 R (RStudio) 中绘制了图。当我通过export::graph2office 导出它们时,标签会四处移动。但是,这只发生在我为标签指定字体时。

library (ggplot2)
library (export)    


plot_data <- data.frame (a = runif (1:20), b = seq (1:20))

x11 (width =  3, height = 3)

ggplot (data = plot_data, mapping = aes (x = a, y = b)) +
    geom_point () +
    labs (x = "my x-label", y = "my y-label") +
    theme (panel.background = element_blank(),
           panel.border = element_rect (fill = NA, size = 0.7),
               axis.ticks = element_line (color = "black", lineend = "round"),
               axis.ticks.length = unit (2, "mm"),
               axis.text = element_text (color = "black"),
               plot.margin = unit(rep (0, 4), "cm"),
                      text = element_text (size=18,  
                                family="ChantillyLH", 
                                color = "black")
               )

graph2office (file = "my_graph", type = "DOC")

在这里,您可以看到 R 中的图形(右侧)和 word 中的导出图形(左侧):

在本例中,y-label 的不良行为更加明显,但 x-label 也移动了一点。我想知道有没有办法解决这个问题。

当我指定另一个字体系列时也会发生同样的情况,例如family="Comic Sans MS":

编辑:即使没有给出textcommand,它也会发生:

【问题讨论】:

  • 由于导出包仅依赖github.com/davidgohel/rvg/blob/master/R/body_add_vg.R 函数来导出图形,因此最好在他的 rvg github 问题页面上询问 David Gohel,因为我怀疑问题可能就在那里...
  • ok...在那里,我们发现:该功能被保留,但应避免使用它:Word 文本框,用于将文本放入图形的元素,正在添加额外的空间形状的顶部和底部。由于没有明确的规则可以处理这个问题,因此无法计算文本的确切位置。这会影响图形的整个渲染。然后,该功能应被视为失败的体验。另一种方法是使用 EMF 格式,这将不允许编辑图形,但显示为矢量图形。 --> 我将研究 EMF
  • 好的,好像“EMF”是 .wmf 的增强版本。与 .wmf 一样,点在 word 中(以及其他地方,我认为)呈现得很糟糕。
  • 如果您使用graph2ppt导出到PPT时也有这个问题,您可以尝试一下吗?然后,您可以从 Powerpoint 复制您的图形并粘贴特殊...增强的元文件,并且该文件的质量应该仍然很好(比我直接从 R 看到的直接 EMF 导出选项要好得多)。
  • 嗯,我试过了,而且确实使用 Powerpoint 也有问题。再说一遍,这些微小的变化从来没有真正困扰过我,因为我导出到 Powerpoint 的主要原因是当我首先对轴标签的位置或大小不满意时,无论如何我都想稍微移动一下。 . 但是我会问 David Gohel 是否知道更好的解决方案...

标签: r ggplot2 plot export


【解决方案1】:

答案可能是:是的,export::graph2office 移动轴标签(export::graph2pptexport::graph2doc 也是如此)。没有办法解决这个问题。如果您想在 R 中设置图表样式并将它们按原样导出到 Office,那么很遗憾,export::graph2office 函数不是您的选择。但是,该功能当然可以用作生成可编辑办公室图表的快速而简单的选项。

如果您的目标是以更可靠的方式导出图表,CairoSVG 可能是更好的选择(请参阅我的答案:Producing a vector graphics image (i.e. metafile) in R suitable for printing in Word 2007)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    • 2021-10-26
    • 2016-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多