在ggplot图中使用unicode字符的舒适方法

时间:2014-11-05 08:40:27

标签: r unicode ggplot2

是否有一个很好的做法是在ggplot标题中插入unicode字符并将其另存为pdf?

我正在努力表达,粘贴和sprintf以获得一个好的标题...

所以,有效的是

ggtitle(expression(paste('5', mu, 'g')))

这将打印一个丑陋的希腊mu。丑陋我的意思是不同的字体,但总的来说,它将以pdf格式打印而不会出现问题。但问题就出现了,如果你想在标题中添加新行。或许我没有找到解决方案。

我首选的解决方案是使用带有unicode编号的sprintf,例如

ggtitle(sprintf('5\u03BCg'))

它在屏幕上显示了一个很好的结果,但不能用ggsave保存为pdf。 PNG工作正常,但我想使用pdf保存选项。

是否有可能使用ggsave绘制unicode字符?我读到了关于cairo_pdf的设备,但这会弄乱字体,我无法正确保存图表。

提前感谢您的帮助。

修改 Example PDF

我刚刚上传了一个示例PDF ...所以也许我的问题出在其他地方......

2 个答案:

答案 0 :(得分:8)

尝试

library(ggplot2)
p <- ggplot(df, aes(x=date, y=value)) 
p <- p + geom_line()
p + ggtitle(sprintf('5\u03BCg'))
library(Cairo)
ggsave("newfile.pdf", device=cairo_pdf)

数据

set.seed(42) 
df <- data.frame(date = 1:10 , value = cumsum(runif(10 , max = 10)) )

答案 1 :(得分:0)

使用 emojifont 包为我解决了这个问题。

library(emojifont)