R语言实操记录——导出高清图片(矢量图)
最近需要用到环状图,照着说明书浅学了一下circlize包(网上的教程几乎全是机翻后的说明书内容,远不如直接看说明书,然说明书又太长,后续补一份文章,讲一下我自己的理解思路,方便后续生疏后可以快速上手),在成图的时候发现图片质量很差,就连坐标轴都是歪的。例如下图。

附上代码:
circlize_plot = function() {
set.seed(12345)
sectors = letters[1:10]
circos.initialize(sectors, xlim = c(0, 1))
circos.track(ylim = c(0, 1), panel.fun = function(x, y) {
circos.points(runif(20), runif(20), cex = 0.5, pch = 16, col = 2)
circos.points(runif(20), runif(20), cex = 0.5, pch = 16, col = 3)
circos.axis(labels.cex = 0.6)
})
circos.track(ylim = c(0, 1), panel.fun = function(x, y) {
circos.lines(sort(runif(20)), runif(20), col = 4)
circos.lines(sort(runif(20)), runif(20), col = 5)
})
for(i in 1:10) {
circos.link(sample(sectors, 1), sort(runif(10))[1:2],
sample(sectors, 1), sort(runif(10))[1:2],
col = add_transparency(col_fun(rnorm(1))))
}
circos.clear()
}
circlize_plot()
保存方法
png("circliz.png")
circlize_plot() #绘制图片的代码,放在pdf和dev.off中间
dev.off()
我师兄的第一反应都是让我换软件了,哈哈。但作为一个出了这么多年的软件不应该有这样的问题,我思考了一下,可能有下面几个原因。

针对第二个猜测,我去网上查询了一下,果然遇到相同问题的人不少啊。
1、把自己的图片保存成EPS格式


2、得到保存的EPS图片,用Adobe Illustrator (AI)打开

3、在AI中可以编辑,保存成自己想要的格式

pdf("circliz.pdf")
circlize_plot() #绘制图片的代码,放在pdf和dev.off中间
dev.off()

library(ggplot2)
ggsave(filename = “filename.svg”, polt, width= ,height= ,dpi= )
其实最开始我获得的图片是位图(Bitmap),由一个个像素点构成,所以放大后才看起来不连贯。后续获得的高清图片则是矢量图(Vector),也称为面向对象的图像或绘图图像,在数学上定义为一系列由点连接的线。由于图像是由数学公式描述的,可以根据需要重新生成,所以矢量图可以进行无损缩放
位图和矢量图是两种常见的图像表示方法,它们有一些明显的区别。下面是位图和矢量图之间的主要区别: