相关疑难解决方法(0)

在R图形中使用Unicode'dingbat-like'字形,跨设备和平台,尤其是PDF

你们中的一些人可能已经看过我关于这个主题的博客文章,在我想要帮助一个朋友在图表上生成半满的圆圈之后我编写了以下代码:

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) 
Run Code Online (Sandbox Code Playgroud)

这是有效的(即产生一个几乎完整的酷dingbatty符号网格):

  • 在Ubuntu 10.04上,在X11或PNG设备中
  • 在Mandriva Linux发行版上,安装了pango-devel的相同设备,带有本地构建的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) …
Run Code Online (Sandbox Code Playgroud)

pdf unicode graphics r

20
推荐指数
2
解决办法
3725
查看次数

标签 统计

graphics ×1

pdf ×1

r ×1

unicode ×1