我正在尝试使用dev.copy2eps()
功能来保存输出的图表。但是,当我在函数中更改绘图宽度和高度时,不会显示所有字符串(包括标签和图例)。
代码:
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功能以不同的尺寸保存我的图表,保持相同的质量和信息?
答案 0 :(得分:0)
简而言之:您的height
和width
参数似乎就是问题所在。
事实证明,如果您添加height
和width
但非常小,则不会删除标签。通过删除这些,您将能够在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
相同的方式设置宽度和高度。除非设备指定以英寸为单位的尺寸,否则这是不合适的,特别是对于png
,jpeg
,tiff
和bmp
,除非指定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
我们了解到width
和height
图形区域的宽度和高度,以英寸为单位。