2013-09-16 2 views
4

Журнал хочет, чтобы я представил цифры в виде файлов EPS. Экспортируя их как EPS-файл из R, используя ggplot2, а затем открывая EPS-файл в Adobe Illustrator, он сообщает мне, что «шрифт не найден в системе».ggplot2: экономящий участок как EPS со встроенным шрифтом

Как решить эту проблему? Вот синтаксис, который я использую в настоящее время.

library(ggplot2)  
a <-c("Sad Mood", "Cognition", "Fatigue", "Interest Loss", "Slowed", "Self-blame", "Suicidal Ideation", "Early insomnia", "Appetite", "Late insomnia", "Agitated", "Weight", "Middle insomnia", "Hypersomnia", "Age", "Sex") 
b <-c(20.7,16.5,13.8,13.1,8.8,6.4,6.1,3.6,3.0,2.5,2.1,1.3,0.9,0.7,0.4,0.1) 
c <-c(17.90,13.64,11.36,10.72,6.99,4.60,4.68,2.38,2.09,1.65,1.35,0.76,0.47,0.24,0.15,0.03) #lower CI 
d <-c(23.47,19.27,16.28,15.74,10.64,8.20,7.95,5.07,4.21,3.63,2.99,2.22,1.59,1.62,0.95,0.31) #upper CI 

data <- data.frame(a,b,c,d) 
data1 <- transform(data, a = reorder(a, order(b, decreasing = FALSE))) 
data1$label <-sprintf("%.1f", data1$b) 

ggplot(data1, aes(x=as.factor(a), y=b, order=a))+ 
    geom_bar(stat="identity",fill='#888888',colour='#888888') +theme_bw() +coord_flip() + 
    ylab("Relative importance estimation in %") +xlab("") + 
    geom_errorbar(aes(ymin=c, ymax=d), width=.3, size=.5)+ 
    geom_text(aes(label=label), size=4.5, vjust=.4,hjust=-1.5)+ 
    scale_y_continuous(limits = c(-0, 25))+ 
    theme(axis.text.x = element_text(size = 13))+ 
    theme(axis.text.y = element_text(size = 13))+ 
    theme(axis.title.x = element_text(size = 14, vjust=-.2)) 

ответ

0

Существует R пакет под названием extrafont, который я использовал, чтобы решить проблему, как это в прошлом. Here - это решение, которое я использовал.

В принципе, есть база данных шрифтов, которую R будет использовать, и базу данных шрифтов, в которой будет использоваться постскриптум. Большую часть времени вам не придется делать то, что я делал выше, с линиями 12-27, но если у вас есть шрифт с нестандартной схемой именования, вам придется вручную редактировать базу данных шрифтов R.

Ваша основная проблема будет заключаться в том, чтобы имя шрифта (и фамилия шрифта) было одинаковым в R и PS. Вы должны быть в состоянии сделать это, установив extrafont (установка его в первый раз создает базу данных шрифтов в R) и загрузку шрифтов с правильным устройством.

+0

Это было решение, которое я нашел в google, прежде чем я разместил здесь; однако это для PDF, а не для EPS, и я не мог заставить его работать с моим скриптом. Что такое «loadfonts (device =« pdf »), loadfonts (device =" postscript ")" для? – Torvon

+0

Вам может быть лучше, если установить extrafont и посмотреть на документы, b/c Я сделал это несколько месяцев назад. :) Но loadfonts регистрирует шрифт с указанным устройством (например, 'pdf' или' postscript'). В этом случае мы можем указать шрифт в R, а затем зарегистрировать его в PS с помощью extrafont. Это * должно * избегать проблемы с шрифтами, которые не видны. Если нет, вам нужно убедиться, что имя шрифта и фамилия совпадают точно, что отстойно, если у вас есть семейства шрифтов w/spaces + ggplot2. Извините, я не могу вспомнить больше с головы. –

Смежные вопросы