R中输出常见位图和⽮量图格式总结
R语⾔有两⼤主要功能,绘图和统计,R的绘图功能是很强⼤的,在R⾥绘制好图形后常常需要输出图形。
图形常见的格式有位图和⽮量图,位图⼜包括TIFF、BMP、JPEG、PNG等;⽮量图包括PDF、VMF、SVG等。
今天就来学习R中怎么导出常见的位图和⽮量图形。
1. 导出位图
保存图形时,将绘图代码放在开启⽬标图形设备的语句和关闭⽬标图形设备的语句之间即可。
⽤法:
tiff("mygraph.tiff") # 开启⽬标图形设备
plot(mtcars$wt, mtcars$mpg) # 绘图代码
dev.off() # 关闭⽬标图形设备
除了tiff(),还可以使⽤函数afile()/png()/jpeg()/bmp()/pdf()/xfig()/postscript()将图形保存为其他格式。
1.1 TIFF格式
论⽂投稿常⽤的位图格式为TIFF格式,在保存图形时如果需要输出位图,建议保存为TIFF格式。
在使⽤tiff()函数时,可以调整函数中的参数来调整输出图形,⽐如设置宽度width、⾼度height、图⽚压缩类型compression等。
tiff(filename = "Rplot%03d.tif",
width = 480, height = 480, units = "px", pointsize = 12,
compression = c("none", "rle", "lzw", "jpeg", "zip", "lzw+p", "zip+p"),
bg = "white", res = NA, family = "", restoreConsole = TRUE,
type = c("windows", "cairo"), antialias)
# 部分参数解释
filename # 要输出图形的⽂件名称
width = 480 # 设置输出图形的宽度
height = 480 # 设置输出图形的⾼度
units = "px" # 设置宽度和⾼度的单位,默认px(像素),其余有英⼨in、厘⽶cm、毫⽶mm。
pointsize = 12 # 图形上⽂字的⼤⼩,默认为12
compression # 设置输出图形的压缩类型
# 可选择的压缩类型有"none", "rle", "lzw", "jpeg", "zip", "lzw+p", "zip+p"
# tiff格式图形建议选择lzw压缩
bg = "white" # 设置图形背景⾊
res = NA # 设置导出图形的分辨率,默认72ppi。
family = "" # 设置图形上⽂字的字体
1.2 BMP格式
BMP格式没有采⽤⽂件压缩,图形占⽤空间⽐较⼤,⼀般不建议输出BMP格式。
bmp(filename = "Rplot%03d.bmp",
width = 480, height = 480, units = "px", pointsize = 12,
bg = "white", res = NA, family = "", restoreConsole = TRUE,
type = c("windows", "cairo"), antialias)
# 部分参数解释
# bmp()函数各参数解释和tiff()函数⼀致。
# 和tiff()的区别是没有compression参数,不需要设置图形压缩类型
1.3 JPEG格式
JPEG是⽣活中最常⽤的图⽚格式,只⽀持有损压缩,图⽚压缩率很⾼,⽂件⽐较⼩。
svg图
jpeg(filename = "Rplot%03d.jpg",
width = 480, height = 480, units = "px", pointsize = 12,
quality = 75,
bg = "white", res = NA, family = "", restoreConsole = TRUE,
type = c("windows", "cairo"), antialias)
# 部分参数解释
quality # JPEG图⽚的质量,默认75,数值为0-100,值越⼩,图⽚压缩越⼤,图⽚质量越低
# jpeg()函数其余各参数解释和tiff()函数⼀致。
# 和tiff()的区别是没有compression参数,不需要设置图形压缩类型
# 但是多了quality参数,需要设置导出图⽚的质量
1.4 PNG格式
PNG格式图⽚采⽤⽆损压缩,压缩率⾼,⽂件尺⼨较⼩。
png(filename = "Rplot%03d.png",
width = 480, height = 480, units = "px", pointsize = 12,
bg = "white", res = NA, family = "", restoreConsole = TRUE,
type = c("windows", "cairo", "cairo-png"), antialias)
# 部分参数解释
# bmp()函数各参数解释和tiff()函数⼀致。
# 和tiff()的区别是没有compression参数,不需要设置图形压缩类型
2. 导出⽮量图
在R中绘制好图形后,我⼀般推荐将图形保存为PDF格式,可以⽅便后期修改,PDF既可以转换为EPS格式,也可以转换为TIFF格式,⽤来投稿很⽅便。
PDF格式转换为EPS和TIFF格式请参见《》这篇推⽂。
2.1 PDF格式
在R中有两种⽅法输出PDF⽂件。
⼀是跟前⾯⼀样,使⽤pdf()打开PDF图形设备,运⾏绘图代码,然后使⽤dev.off()关闭图形设备即可。
这种⽅法适⽤于R中的⼤多数图形,包括基础图形和基于⽹格的图形,如那些由ggplot2和lattice创建的图形。
pdf(file = if(onefile) "Rplots.pdf" else "Rplot%03d.pdf",
width, height, onefile, family, title, fonts, version,
paper, encoding, bg, fg, pointsize, pagecentre, colormodel,
useDingbats, useKerning, fillOddEven, compress)
# 部分参数解释
file # 要输出的图形的⽂件名称
width, height # 图形的宽度和⾼度(单位英⼨),默认值为7英⼨。
# 要以厘⽶为单位指定长宽,必须⼿动执⾏转换:
# 输出8cm*8cm,则设置width=8/2.54,height=8/2.54
onefile # 默认为TRUE,允许⼀个⽂件包含多个图形。
# 如果为false,⽣成⼀个包含每个页⾯的页码的⽂件。
family # 图上使⽤的字体,默认为"Helvetica"
bg, fg, # 初始背景⾊,默认为透明⾊;初始前景⾊,默认为⿊⾊。
pointsize # 使⽤的字体⼤⼩,单位为磅,默认为12
pagecentre # 逻辑词,图形区域是否居中于输出页⾯,默认为TRUE
colormodel # 指定颜⾊模式的字符串,可选有"srgb","gray"("grey")和"cmyk";默认"srgb"。
⽤法:
pdf("myplot.pdf", width=4, height=4) # 开启图形设备
plot(mtcars$wt, mtcars$mpg) # 绘图代码
dev.off() # 关闭图形设备
如果使⽤ggplot2绘制图形,还可以使⽤ggsave()函数输出PDF格式图形。
ggsave(filename, plot = last_plot(), device = NULL,
path = NULL, scale = 1,
width = NA, height = NA, units = c("in", "cm", "mm"),
dpi = 300, limitsize = TRUE, ...)
# 部分参数解释
filename # 设置保存图⽚的⽂件名及格式,可选格式有ps、tex、jpeg、pdf、tiff、png、# bmp、svg或wmf等。wmf⽂件仅限在装有Windows系统的计算机中保存。
plot # 默认保存最后创建的图⽚
path # 图⽚保存的位置,结合⽂件名来保存,默认保存在⼯作⽬录
width, height, units # 保存图⽚的宽度、⾼度和单位,默认单位为英⼨。
dpi # 设置图⽚分辨率,接受字符串设置:"retina"(320), "print"(300)或"screen"(72) limitsize # 逻辑词,默认TRUE,表⽰ggsave不会保存⼤于50*50英⼨的图⽚compression = "lzw" # tiff格式压缩类型
⽤法:
# 加载数据
data("ToothGrowth")
df <- ToothGrowth
df$dose <- as.factor(df$dose)
# 绘制图形
ggboxplot(df, x = "dose", y = "len",
color = "dose", palette = "jco")
# 输出图形
ggsave("myplot.pdf", width=8, height=8, units="cm")
2.2 SVG格式
SVG⽂件在创建和使⽤的⽅法上与PDF⽂件基本相同,可以使⽤svg()函数保存图形。
svg(filename = if(onefile) "Rplots.svg" else "Rplot%03d.svg",
width = 7, height = 7, pointsize = 12,
onefile = FALSE, family = "sans", bg = "white",
antialias = c("default", "none", "gray", "subpixel"))
# 部分参数解释
antialias # 字符串;要使⽤的抗锯齿状类型,默认为"default"
# 其他参数和pdf()⼀样。
如果使⽤ggplot2绘制图形,也可以使⽤ggsave()函数保存图形。
2.3 WMF格式
WMF⽂件在创建和使⽤的⽅法上与PDF⽂件基本相同——但这种格式的图形⽂件只能在Windows上创建。
pointsize = 12, family, restoreConsole = TRUE)
# 参数解释和前⾯⼀样
Microsoft Word和PowerPoint对于PDF⽂件的导⼊⽀持较差,但是这些程序都是原⽣⽀持WMF格式的。WMF格式的⼀个缺点是不⽀持透明。
除了上述格式外,还可以导出PPT格式的图形,⽤于在PPT中进⾏修改。具体参见《》这篇推⽂。
参考资料:
1. [美]Robert I. Kabacoff著. R语⾔实战(第2版)[M].王⼩宁等译. 北京:⼈民邮电出出版社.2016.
2. [美]Winston Chang著. R数据可视化⼿册[M]. 肖楠等译. 北京:⼈民邮电出出版社.2014.
3. 各函数帮助⽂档.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论