欢迎关注微信公众号(医学生物信息学),医学生的生信笔记,记录学习过程。
常见图片的格式包括:pdf,jpeg,tiff,png,svg,wmf。
pdf,svg和wmf为矢量图格式,放大图片时不会出现模糊。
jpeg,tiff和png为位图格式,调整文件大小时会出现模糊。
ggsave()
来保存图片
通过ggplot2
来绘图,那么可以使用ggsave()
来保存输出图片。
plot1 <- ggplot(mtcars, aes(x = wt, y = mpg)) +
geom_point()
# 默认输出单位为英寸,可以通过units参数来指定单位
ggsave("myplot.pdf", plot1, width = 8, height = 8, units = "cm")
另一种方式是ggplot
对象不赋值为plot1
,在调用ggplot()
之后只调用ggsave()
,它将保存最后一个ggplot
对象。
使用ggsave()
,不需要通过print()
来打印ggplot
对象,如果在创建或保存图片时出错,则无需通过dev.off()
来手动关闭图形设备。还有一点需要注意,ggsave()
不能用于绘制多页图。
ggplot(mtcars, aes(x = wt, y = mpg)) +
geom_point()
ggsave("myplot.pdf", width = 8, height = 8, units = "cm")
输出图片为PDF格式
方法一
pdf("myplot.pdf", width = 4, height = 4)
plot(mtcars$wt, mtcars$mpg)
print(ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point())
dev.off()
默认宽度和高度的输出单位为英寸,若想输出单位为厘米,则需通过下方代码进行转换。
# 8x8 cm
pdf("myplot.pdf", width = 8/2.54, height = 8/2.54)
方法二
plot1 <- ggplot(mtcars, aes(x = wt, y = mpg)) +
geom_point()
# 默认输出单位为英寸,可以通过units参数来指定单位
ggsave("myplot.pdf", plot1, width = 8, height = 8, units = "cm")
输出图片为SVG格式
方法一
library(svglite)
svglite("myplot.svg", width = 4, height = 4)
plot1 <- ggplot(mtcars, aes(x = wt, y = mpg)) +
geom_point()
print(plot1)
dev.off()
方法二
plot1 <- ggplot(mtcars, aes(x = wt, y = mpg)) +
geom_point()
ggsave("myplot.svg", plot1, width = 8, height = 8, units = "cm")
输出图片为PNG格式
方法一
# 宽度和高度以像素为单位
png("myplot.png", width = 400, height = 400)
plot(mtcars$wt, mtcars$mpg)
dev.off()
若要输出多个图片,可以在文件名中加入%d
。
png("myplot-%d.png", width = 400, height = 400)
plot(mtcars$wt, mtcars$mpg)
print(ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point())
dev.off()
默认输出为每英寸72像素(ppi)。这种分辨率适合在电子屏幕上显示,而300 ppi一般用于印刷。
ppi <- 300
# 计算300 ppi下4x4英寸图像的高度和宽度(以像素为单位)
png("myplot.png", width = 4*ppi, height = 4*ppi, res = ppi)
plot(mtcars$wt, mtcars$mpg)
dev.off()
方法二
ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point()
# 默认输出单位为英寸,可以通过units参数来指定单位
ggsave("myplot.png", width = 8, height = 8, unit = "cm", dpi = 300)
输出图片为TIFF格式
方法一
tiff("myplot.tiff", width = 4, height = 4, units = "cm", res = 300)
plot1 <- ggplot(mtcars, aes(x = wt, y = mpg)) +
geom_point()
print(plot1)
dev.off()
方法二
plot1 <- ggplot(mtcars, aes(x = wt, y = mpg)) +
geom_point()
ggsave("myplot.tiff", plot1, width = 8, height = 8, units = "cm", dpi = 300)
输出图片为WMF格式
WMF文件的创建和使用方式与PDF文件非常相似,但只能在Windows上创建。
方法一
win.metafile("myplot.wmf", width = 4, height = 4)
plot1 <- ggplot(mtcars, aes(x = wt, y = mpg)) +
geom_point()
print(plot1)
dev.off()
方法二
plot1 <- ggplot(mtcars, aes