你们中的有些人可能已经看过我关于这个主题的博客文章,在这里我希望帮助朋友产生半填充圆作为图形上的点,从而编写了以下代码:TestUnicode <- function(start="25a0", end="25ff", ...) { nstart <- as.hexmode(start) nend <- as.hexmode(end) r <- nstart:nend s <- ceiling(sqrt(length(r))) par(pty="s") plot(c(-1,(s)), c(-1,(s)), type="n", xlab="", ylab="", xaxs="i", yaxs="i") grid(s+1, s+1, lty=1) for(i in seq(r)) { try(points(i%%s, i%/%s, pch=-1*r[i],...)) } }TestUnicode(9500,9900) 这是可行的(即产生一个几乎完整的凉爽的符号符号网格):在X11或PNG设备上的Ubuntu 10.04上在安装了pango-devel的Mandriva Linux发行版上,具有本地R的相同设备它在不同程度上(无声地或警告中)无法不同程度地生成(即生成部分或全部填充有点或空矩形的网格):使用PDF或PostScript在同一台Ubuntu 10.04计算机上运行(尝试将font =“ NimbusSan”设置为使用URW字体无济于事)在MacOS X.6上(石英,X11,开罗,PDF)例如,尝试所有可用的PDF字体系列:flist <- c("AvantGarde", "Bookman","Courier", "Helvetica", "Helvetica-Narrow", "NewCenturySchoolbook", "Palatino", "Times","URWGothic", "URWBookman", "NimbusMon", "NimbusSan", "NimbusSanCond", "CenturySch", "URWPalladio","NimbusRom")for (f in flist) { fn <- paste("utest_",f,".pdf",sep="") pdf(fn,family=f) TestUnicode() title(main=f) dev.off() embedFonts(fn)}在Ubuntu上,这些文件都不包含符号。使它能够处理尽可能多的组合会很好,但是尤其是在某些矢量格式中,尤其是在PDF中更是如此。任何有关字体/图形设备配置的建议都将受到欢迎。
3 回答
噜噜哒
TA贡献1784条经验 获得超7个赞
我发现该cairo_pdf设备完全不够用:输出pdf与屏幕渲染都明显不同,并且对绘图的支持是粗略的。
但是,在OS X上有一个非常简单的解决方法:使用“普通” quartz设备并将其设置type为pdf:
quartz(type = 'pdf', file = 'output.pdf')
不幸的是,在我的计算机上,它忽略了字体系列,并始终使用Helvetica(尽管文档声称默认值为Arial)。
至少还有两个陷阱:
pdf将连字符转换为负号。这可能甚至不总是您想要的,但是正确排版负数非常有用。链接的线程描述了解决方法。
当然,它是特定于平台的,并且只能在OS X上运行。
(我意识到OP简短地提到了Quartz设备,但是经常查看此线程,并且我认为此解决方案需要更加突出。)
- 3 回答
- 0 关注
- 614 浏览
添加回答
举报
0/150
提交
取消