我使用R软件包TraMineR中的seqtreedis()函数生成树图像,但默认分辨率为72 dpi。我需要创建300 dpi图像。可以在seqtreedis()函数调用中使用类似“res”参数吗?
感谢您的帮助
答案 0 :(得分:0)
您可以通过传递seqtreedisplay
参数(将被视为device.args
列表的元素)来控制...
函数生成的输出文件的分辨率。
device.args
参数应该是将传递给使用过的设备的参数列表(jpeg
时为image.format="jpg"
,否则为png
。
要获得300 dpi的分辨率,您需要设置res=300
,同时增加width
和height
。
我用mvad
数据说明:
data(mvad)
## Defining a state sequence object
mvad.seq <- seqdef(mvad[, 17:86])
## Growing a seqtree using Hamming distances:
seqt <- seqtree(mvad.seq~ male + Grammar + funemp + gcse5eq + fmpr + livboth,
data=mvad, R=1000, pval=0.05, seqdist.arg=list(method="HAM"))
## Generating the plot as a 300 dpi image in mytree.jpg
seqtreedisplay(seqt, filename = "mytree.jpg", type="d", border=NA, image.format = "jpg",
device.args=list(width=480*300/72, height=480*300/72, res=300))
以下是我以前的答案无效,因为seqtreedisplay
内部首先以位图格式生成文本和绘图,然后将其保存在image.format
中。
解决方案是为seqtreedisplay的结果选择矢量格式(例如pdf或eps),然后将此矢量文件转换为具有所需分辨率的光栅格式。
假设您已安装ImageMagick
(Gostscript
依赖ImageMagick
转换为pdf或eps的转换,您可以使用convert.g
TraMineRextras
函数1}}用于此转换。我使用mvad
数据说明如下:
## Drawing the tree as a pdf file and converting into jpeg
seqtreedisplay(seqt, filename = "mytree.pdf", type="d", border=NA, image.format = "pdf")
path <- getwd() ## retrieve the path
convert.g(path = path, fileroot = "mytree", from = "pdf", to = "jpeg",
options = "-units PixelsPerInch -density 300x300")
生成的jpeg文件将位于当前文件夹的jpeg
子目录中。