0

我希望在带有 R 3.0.1 的 Windows 7 上 xyplot 的 PNG 输出中包含一个 unicode 字符。例如(注意ylab 表达式中的µ )

## output to windows() works fine
xyplot(CD4 ~ obstime, groups=aids$patient, data=aids, type="b", ylab=expression(sqrt("CD4/µl")))

## output to PNG does not
png(file="AIDS.png", width=5, height=5, units="in", type="cairo", res=800)
xyplot(CD4 ~ obstime, groups=aids$patient, data=aids, type="b", ylab=expression(sqrt("CD4/µl")))
dev.off()

我收到错误消息“此设备的指标信息不可用”。

我认为这可能是 unicode 和 png() 的一个普遍问题,因为使用 plot(1, main="µ") 为 windows() 输出打印 µ,但不为 png() 输出打印(其中 µ 被默默地省略) . 然而,使用 CairoPNG 并不能解决这个问题:它为 plot() 打印 µ,但 xyplot() 的错误仍然存​​在(xyplot 似乎也忽略了 Cairo 的 pointsize=)。

4

1 回答 1

1

试试这个(使用 plotmath 表达式解释):

png(file="AIDS.png", width=5, height=5, units="in", type="cairo", res=800)
xyplot(1 ~ 1,  type="b", ylab=expression(sqrt(CD4/µ*l)))
dev.off()

或者:

png(file="AIDS.png", width=5, height=5, units="in", type="cairo", res=800)
xyplot(1 ~ 1,  type="b", ylab=expression(sqrt(CD4/mu*l)))
dev.off()

(这两种方法在我的设备上都比让 png() 对字符版本执行任何操作要快得多。)

于 2013-10-14T20:03:45.063 回答