png如何转为svg格式:R语言

admin 21 2025-04-03 11:59:08 编辑

今天有个同学问R语言画图的问题。

现在有个图片是png格式的,图像如下:

一个很简单的直方图。

在R输出图片时,采用的是png()函数,由于png图片是非矢量图,因此要指定像素。这个图片默认的像素是2000×1200。

问题是如何将这个图片转为svg 格式的。

如果直接用svg()转换,图像会变成这样的:

 

也就是显示不完整,因为svg()是矢量图,没有像素的概念,只有英寸。

因此需要根据公式进行英寸和像素的转化。

方法1:

设x为png 中x轴像素个数,y为y轴像素的个数。设总像素为T。

x*y=T

设svg中 x轴长度为a ,y轴为b。(本图中比例为5:3)

 设变量p为ppi,像素密度。

p*(a*b)=T

设h为基础单位,那么

p*(5h*3h)=x*y

h=√(x*y)/15

a=5*√(x*y)/15

b=3*√(x*y)/15

通过对上面图的计算,可以得知

a=400/√p *5

b=400/√p*3

但是这样还是有一个问题。这个p 不是很容易计算,这个可以通过计算图像面积得到。

方法2:

其实方法1 更多的是从理解的角度,方法2 是更加简单粗暴的。

可以利用画图软件将png 打开,转换为英尺,看看x 和y 的大小,然后修改pdf 的,然后就可以啦。

祝好运。


 

上一篇: 基因设计工具的十大推荐,让你的科研事半功倍
下一篇: 免疫治疗思路太复杂,学都学不会,烦死了
相关文章