Как мне написать сюжет, содержащий символ в PDF в R? - PullRequest
5 голосов
/ 07 июля 2011

Я хочу использовать знак бесконечности на оси x прямоугольника в R, который я хочу записать в файл PDF.

Я могу установить символ бесконечности, выполнив

names(data)[9] <- "∞"

но я получаю ошибки кодирования при попытке написать:

conversion failure on '∞' in 'mbcsToSbcs': dot substituted for <...>

Ответы [ 3 ]

5 голосов
/ 07 июля 2011

Вы можете использовать Unicode, как в этом примере: с использованием 'дингбатоподобных' символов Unicode в R-графике, на разных устройствах и платформах, особенно PDF (бесконечность - Unicode 8734): в частности, это возможночто простое использование устройства cairoPDF сделает эту работу.Вероятно, лучшая идея - использовать возможности ?plotmath (как указано в ?boxplot в аргументе names:

 boxplot(matrix(1:10,ncol=2),names=c("a",expression(infinity)))
5 голосов
/ 07 июля 2011

Я не совсем уверен, как вы пытаетесь разместить метку, но у меня работает следующий код:

x <- 1:10
y <- 1:10

pdf("infty.pdf")
plot(x,y,xlab=expression(infinity))
dev.off()

в том смысле, что он создает PDF с осью x, помеченной символом бесконечности. Для математических символов я бы порекомендовал не пытаться хранить их как символы и ожидать, что R будет обрабатывать их так же, как и другие символы. См. ?plotmath для получения дополнительной информации.

3 голосов
/ 25 февраля 2013

У меня была похожая проблема на MacOS с символами для мужчин (mars unicode \ u2642) и женщин (venus unicode \ u2640). pdf () не будет отображать их, заменяя их точками.

Затем я установил Cairo, и сначала он тоже не работал (вместо этого он заменял символы прямоугольниками), пока не набрал

cairo_pdf (pdf.file, family = "Arial Unicode MS")

который работает. Проблема состоит в том, чтобы найти шрифт с определенным символом, поэтому нет гарантии, что он будет работать для других символов.

...