我有一些可以很好地直接打印为 R 代码的图形,但是当由 knitr 生成时会生成错误的文本对齐方式。考虑
library(ggplot2)
library(extrafont)
loadfonts(device="win")
ggplot(data.frame(x=1:10,section=c(rep("You",8),rep("Me",2))))+
geom_point(aes(x=x,y=x))+
ylab("my\nlabel")+
theme(text=element_text(family="Arial Unicode MS"))+facet_wrap(~section)
我明白了
这很好。然后移动到 knitr (使用 R 降价)
```{r dev=c('png')}
library(ggplot2)
library(extrafont)
loadfonts(device="win")
ggplot(data.frame(x=1:10,section=c(rep("You",8),rep("Me",2))))+
geom_point(aes(x=x,y=x))+
ylab("my\nlabel")+
theme(text=element_text(family="Arial Unicode MS"))+facet_wrap(~section)
```
我收到一些警告(多次)
## Warning: unknown AFM entity encountered
## Warning: font width unknown for character 0x32
并且文本变得未对齐。
查看 y 标签。
cairo_pdf
我在使用该设备时遇到了完全相同的问题
代码变成
library(ggplot2)
cairo_pdf("plot.pdf")
ggplot(data.frame(x=1:10,section=c(rep("You",8),rep("Me",2))))+
geom_point(aes(x=x,y=x))+
ylab("my\nlabel")+
theme(text=element_text(family="Arial Unicode MS"))+facet_wrap(~section)
dev.off()
对于 R 和
```{r dev=c('cairo_pdf')}
library(ggplot2)
ggplot(data.frame(x=1:10,section=c(rep("You",8),rep("Me",2))))+
geom_point(aes(x=x,y=x))+
ylab("my\nlabel")+
theme(text=element_text(family="Arial Unicode MS"))+facet_wrap(~section)
```
对于针织机。警告是现在
## Warning: font family 'Arial Unicode MS' not found in PostScript font database
但图像显示与以前相同的问题。
我已经在带有 R 3.0.1 的 win7 和 MacOS X 平台上重现了这个问题
我想可能有一个简单的解决方案来解决这个问题,但我没有设法弄清楚。
有什么建议么?