在R中保存postscript文件时不显示标签和图例

时间:2018-01-25 08:06:42

标签: r

我正在尝试使用dev.copy2eps()功能来保存输出的图表。但是,当我在函数中更改绘图宽度和高度时,不会显示所有字符串(包括标签和图例)。

输出图的示例(非默认尺寸): enter image description here

代码:

boxplot(volunteers$number_of_commits, employees$number_of_commits, las = 1, outline = FALSE, cex.lab=1.2, horizontal = TRUE, margin = list(l = 10, r = 10, b = 0, t = 0), col=(c("#b8d1ed", "#aae0c0")), main = "Number of Commits")
legend("bottomright", legend=c("Employees", "Volunteers"), fill=c("#aae0c0", "#b8d1ed"), inset= .02, cex=1.1)
dev.copy2eps(file="Images/atom/atom_num_commits.eps", width = 650, height = 360)

问题是:如何使用postscript功能以不同的尺寸保存我的图表,保持相同的质量和信息?

1 个答案:

答案 0 :(得分:0)

简而言之:您的heightwidth参数似乎就是问题所在。

事实证明,如果您添加heightwidth 但非常小,则不会删除标签。通过删除这些,您将能够在eps中看到标签,或者考虑使用明显更小的值。

plot(cars$speed~cars$dist)
legend("bottomright", legend=c("Employees", "Volunteers"), fill=c("#aae0c0", "#b8d1ed"), inset= .02, cex=1.1)
dev.copy2eps(file = "your_path/test.eps")

EPS绘图的输出与绘制设备(在RGUI或RStudio中)具有相同的高度和宽度纵横比。您可以添加参数以保持纵横比,但减小其值的大小。请参阅?dev.copy2eps

中的此部分
  

如果dev.print与指定设备一起使用(偶数postscript),则会以与dev.copy2eps相同的方式设置宽度和高度。除非设备指定以英寸为单位的尺寸,否则这是不合适的,特别是对于pngjpegtiffbmp,除非指定units = "inches"。 / p>

另一个解决方案,您还可以在was proposed的评论中直接调整宽度和高度(英寸,以便您可以考虑幅度)s.brunel

setEPS()
postscript("C:/Users/weig_mi/Desktop/test2.eps", width = 6.5, height = 3.60)
plot(cars$speed~cars$dist)
legend("bottomright", legend=c("Employees", "Volunteers"), fill=c("#aae0c0", "#b8d1ed"), inset= .02, cex=1.1)
dev.off()

?postscript我们了解到widthheight

  

图形区域的宽度和高度,以英寸为单位。