gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 12:14:51 25 4
gpt4 key购买 nike

你们中的一些人可能已经看到了关于此主题的blog post,在这里我想帮助 friend 产生半填充圆作为图形上的点后,编写了以下代码:

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)

这可以工作(即产生一个几乎完整的酷dingbatty符号网格):

在X11或PNG设备上的Ubuntu 10.04上

  • 安装了pango-devel后,在Mandriva Linux发行版上的
  • ,相同的设备,带有本地构建的R

    它无法无声或警告不同程度地失败(即生成部分或全部填充有点或空矩形的网格):

    相同PDF或PostScript的Ubuntu 10.04计算机上的
  • (尝试将font =“NimbusSan”设置为使用URW字体,无济于事)
  • 在MacOS X.6上的
  • ( quartz ,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上,这些文件都不包含符号。

    使它能够处理尽可能多的组合会很好,但是尤其是在某些 vector 格式中,尤其是在PDF中更是如此。

    任何有关字体/图形设备配置的建议都将受到欢迎。

    最佳答案

    我认为您不满意Ben,因为根据Paul Murrell的一些笔记,pdf()只能处理单字节编码。需要将多字节编码转换为等效的单字节,并且其中存在摩擦。根据定义,单字节编码不能包含可以用多字节编码(例如UTF-8)表示的所有字形。

    可以在here中找到Paul的笔记,他在其中建议了两种解决方案:使用基于Cairo的PDF设备,在适当配备的Linux和Mac OS系统上使用cairo_pdf()或通过MS Windows下的Cairo软件包。

    关于r - 在跨设备和平台(尤其是PDF)的R图形中使用Unicode 'dingbat-like'字形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5886018/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com