У меня R 3.5.1 и RStudio 1.1.453, работающие на MacOS High Sierra 10.13.5, платформа x86_64-apple-darwin17.6.0. Я хочу понять, почему я могу печатать и экспортировать графики, но не могу использовать графическое устройство для сохранения графиков.
Я могу использовать пакет extrafont R для встраивания шрифта Corbel в PDF-графики. Я могу сохранить эти графики с помощью print (), а затем экспортировать через окно Plot. Используя этот метод, шрифт отлично встраивается и отображается.
Однако я хочу, чтобы R сохранил несколько десятков таких графиков без необходимости вручную печатать () и сохранять каждый из них. Для этого есть разные методы.
Один из них - R Графическое устройство PDF . К сожалению, это устройство не очень хорошо взаимодействует с пробелами и другими персонажами. Вот функция, которая производит ggplot:
jobreport_grouped <- function(table, N)
{
#Group
table <- table %>%
group_by(Education, Desired) %>%
summarize(n())
#Order
table <- arrange(table, desc(`n()`))
#Response label
response_count <- sum(table$`n()`)
#Sample size label
samplesize <- paste("(N = ", sum(table$`n()`), ")", sep="")
#Grouped barplot
ggplot(table[which(table$`n()`>N),],
aes(fill=Education,
x=reorder(Desired,-`n()`),
y=`n()`)
) +
scale_fill_manual(values = paletteIDCN) +
IDCNtheme_grouped_dense +
xlab(paste("Number of Active Members: ",
member_count,
"\n",
"Number of Responses: ",
response_count,
sep="")
) +
ylab("Number of IDCN Members") +
ggtitle(paste(desired_title("Professional Areas"),
"\n",
today,
sep = ""
)
)+
geom_col(position="dodge")
}
А затем вызов этой функции вместе с попыткой написать сюжет
> getGroupedJobReport <- function(A,n){
+ p <- jobreport_grouped(A,n)
+ ggsave(p, filename = "~/TMP-R/TDP/plots/Desired_GROUPED.pdf", device = pdf,
+ width = 12, height = 7, units = "in")
+ }
> getGroupedJobReport(A1,2)
There were 50 or more warnings (use warnings() to see the first 50)
> warnings()
Warning messages:
1: In grid.Call(C_textBounds, as.graphicsAnnot(x$label), ... :
font width unknown for character 0x20
2: In grid.Call(C_textBounds, as.graphicsAnnot(x$label), ... :
font width unknown for character 0x27
3: In grid.Call(C_textBounds, as.graphicsAnnot(x$label), ... :
font width unknown for character 0x20
После этого я попытался установить MacPorts Cairo вместе с пакетом CRAN Cairo и получил другую ошибку:
> getGroupedJobReport <- function(A,n){
+ p <- jobreport_grouped(A,n)
+ ggsave(p, filename = "~/TMP-R/TDP/plots/Desired_GROUPED.pdf", device = cairo_pdf,
+ width = 12, height = 7, units = "in")
+ }
> getGroupedJobReport(A1,2)
Warning message:
In dev(file = filename, width = dim[1], height = dim[2], ...) :
failed to load cairo DLL
Какие есть альтернативы родному графическому устройству PDF R и Cairo? Если таковые имеются, какие из них я должен использовать?