德清网站设计,iapp用网站做软件代码,南京农业大学新校区建设网站,公司部门解散赔偿标准R语言
R语言实操记录——导出高清图片#xff08;矢量图#xff09; 文章目录 R语言一、起因#xff08;闲聊#xff0c;可跳过#xff09;二、如何在R中导出高清图片#xff08;矢量图#xff09;2.1、保存为EPS图片格式后转AI编辑2.2、保存为PDF格式#xff08;推荐…R语言
R语言实操记录——导出高清图片矢量图 文章目录 R语言一、起因闲聊可跳过二、如何在R中导出高清图片矢量图2.1、保存为EPS图片格式后转AI编辑2.2、保存为PDF格式推荐2.3、用ggplot2包的ggsave函数输出图片非全部适用 三、矢量图与位图 一、起因闲聊可跳过
最近需要用到环状图照着说明书浅学了一下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、circlize包中可能有我未知的绘图前的需要设置的参数。2、受限于Rstudio本身的原因图片无法展示高清细节需要下载为高像素的图片。 针对第一个猜测我发现说明书中没有特别提及相关参数为了排除代码问题我找了一个说明书中的示例代码跑了一遍与说明书中的高清图片不同我仍然得到了低质量图片所以排除这个猜测。下图为说明书中的图片。 针对第二个猜测我去网上查询了一下果然遇到相同问题的人不少啊。
二、如何在R中导出高清图片矢量图
2.1、保存为EPS图片格式后转AI编辑 1、把自己的图片保存成EPS格式 Encapsulated Post Script (eps)是一种被封装后的文件。主要由Ai软件生成的。PS和AI均可以打开只不过用PS打开时会将eps文件进行栅格化像素会变到300dpi会变糊所以建议用AI打开。 2、得到保存的EPS图片用Adobe Illustrator (AI)打开 3、在AI中可以编辑保存成自己想要的格式
2.2、保存为PDF格式推荐
直接导出为PDF格式也可以得到导出pdf的矢量图后续想要编辑还是转到AI中打开。
pdf(circliz.pdf)
circlize_plot() #绘制图片的代码放在pdf和dev.off中间
dev.off()2.3、用ggplot2包的ggsave函数输出图片非全部适用
相较于base中提供的保存图片函数ggsave函数的功能更强可以设置长宽和分辨率dpi大小及保存的格式等自然可以获得高清图片。可惜的是并非所有函数生成的图片都适用于ggsave函数保存例如circlize包绘制的图形就不行。
library(ggplot2)
ggsave(filename, polt, width ,height ,dpi )三、矢量图与位图 其实最开始我获得的图片是位图Bitmap由一个个像素点构成所以放大后才看起来不连贯。后续获得的高清图片则是矢量图Vector也称为面向对象的图像或绘图图像在数学上定义为一系列由点连接的线。由于图像是由数学公式描述的可以根据需要重新生成所以矢量图可以进行无损缩放 位图和矢量图是两种常见的图像表示方法它们有一些明显的区别。下面是位图和矢量图之间的主要区别 定义方式 位图由像素Pixel组成的网格每个像素都有自己的颜色值。图像被分成许多小的方块每个方块称为像素。矢量图使用数学公式描述图像通过定义线段、曲线、形状等来创建图像。 缩放性 位图在缩放时位图会失去一定的精度。当放大位图时边缘变得锯齿状而缩小位图时细节可能会丢失。矢量图矢量图可以无损地进行缩放因为图像是由数学公式描述的可以根据需要重新生成。 文件大小 位图文件大小取决于像素的数量和颜色深度。由于每个像素都需要存储颜色信息位图文件通常比较大。矢量图矢量图文件通常相对较小因为它们仅存储对象的描述和属性而不存储每个像素的颜色信息。 分辨率 位图位图具有特定的分辨率表示为每英寸的像素数DPI。更高的分辨率可以提供更多的细节和更清晰的图像。矢量图矢量图没有固定的分辨率它们可以无损地缩放到任意分辨率。 编辑灵活性 位图位图通常是平面图像难以修改或编辑。对位图进行编辑时需要对每个像素进行处理。矢量图由于矢量图使用数学公式来定义图像因此可以轻松地修改、调整和编辑各个元素。 应用领域 位图位图常用于表达照片、实际场景和复杂的图像如数字照片、位图图标等。矢量图矢量图常用于需要无损缩放和编辑的图像如图标、徽标、插图等。 综上所述位图适用于表达真实场景和细节丰富的图像而矢量图适用于需要无损缩放和编辑的图像。选择使用哪种图像格式取决于具体的应用需求和使用场景。