#r #ggplot2
#r #ggplot2
Вопрос:
Итак, я пытаюсь изменить шрифт в ggplot заголовка и меток моего графика. Я хочу установить шрифт на calibri, но независимо от того, что я делаю, я продолжаю получать следующее сообщение об ошибке:
1: In grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
font family 'Calibri' not found, will use 'sans' instead
Я сделал следующее, чтобы попытаться загрузить шрифты
library(extrafont)
font_import()
loadfonts(device = "win")
Но когда я создаю график, используя следующий код, я получаю сообщение об ошибке
churchplot <- ggplot(church, aes(x = year, y = Great.deal.Quite.a.lot, color = Great.deal.Quite.a.lot)) geom_line(size = 1.5, color = "palegreen4")
theme(axis.line = element_blank(),
panel.grid.minor.x = element_blank(),
panel.grid.major.x = element_blank(),
panel.grid.major.y = element_line(color = "gray85"),
panel.border = element_blank(),
panel.background = element_blank())
geom_hline(aes(yintercept = 0), size = .5)
expand_limits(y = 0)
scale_y_continuous(expand = c(NA, 0), limits = c(0, 85))
theme(axis.text.x = element_text(vjust = 1, size = 11),
axis.text.y = element_text(size = 11),
axis.title.x = element_text(vjust = -1, hjust = .01 ,size = 15),
plot.title = element_text(size = 16, face = "bold"))
ggtitle("Trust in the Church and Organized Religion")
ylab("")
xlab("Year")
labs(color = "Trust in Church")
annotate(geom="text", x = 2011, y = 58, label = "Title",
color="forestgreen", size = 5, fontface = "bold", family = "Calibri")
churchplot
dput(church)
structure(list(year = c(2020L, 2019L, 2018L, 2017L, 2016L, 2015L,
2014L, 2013L, 2012L, 2011L, 2010L, 2009L, 2008L, 2007L, 2006L,
2005L, 2004L, 2003L, 2002L, 2001L, 2000L, 1999L, 1998L, 1997L,
1996L, 1995L, 1994L, 1993L, 1991L, 1991L, 1990L, 1989L, 1988L,
1987L, 1986L, 1985L, 1984L, 1983L, 1981L, 1979L, 1977L, 1975L,
1973L), Great.deal = c(25L, 21L, 20L, 23L, 20L, 25L, 25L, 25L,
25L, 25L, 25L, 29L, 26L, 24L, 28L, 31L, 26L, 27L, 26L, 32L, 28L,
32L, 34L, 35L, 30L, 32L, 29L, 29L, 31L, 33L, 33L, 30L, 35L, 35L,
34L, 42L, 41L, 39L, 40L, 40L, 38L, 44L, 43L), Quite.a.lot = c(17L,
15L, 18L, 18L, 21L, 17L, 20L, 23L, 19L, 23L, 23L, 23L, 22L, 22L,
24L, 22L, 27L, 23L, 19L, 28L, 28L, 26L, 25L, 21L, 27L, 25L, 25L,
24L, 25L, 26L, 23L, 22L, 24L, 26L, 23L, 24L, 23L, 23L, 24L, 25L,
26L, 24L, 22L), Some = c(31L, 36L, 33L, 29L, 31L, 32L, 29L, 32L,
29L, 29L, 30L, 29L, 31L, 30L, 26L, 28L, 28L, 30L, 32L, 24L, 26L,
28L, 26L, 28L, 27L, 28L, 29L, 29L, 27L, 26L, 26L, 26L, 27L, 28L,
27L, 21L, 22L, 26L, 20L, 21L, 20L, 20L, 21L), Very.little = c(23L,
25L, 24L, 25L, 24L, 20L, 20L, 17L, 22L, 20L, 18L, 14L, 15L, 21L,
19L, 16L, 15L, 17L, 18L, 13L, 14L, 12L, 12L, 12L, 13L, 11L, 14L,
14L, 12L, 12L, 14L, 17L, 11L, 10L, 12L, 11L, 13L, 9L, 11L, 11L,
13L, 9L, 7L), None..vol.. = c(3L, 4L, 3L, 3L, 3L, 3L, 4L, 2L,
4L, 2L, 2L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 2L, 2L, 1L, 1L, 2L,
2L, 2L, 2L, 3L, 2L, 1L, 2L, 3L, 2L, 1L, 3L, 1L, NA, 1L, 5L, 1L,
1L, 1L, 4L), No.opinion = c(1L, 0L, 2L, 2L, 1L, 2L, 2L, 2L, 1L,
1L, 2L, 2L, 3L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 1L,
2L, 1L, 1L, 3L, 2L, 2L, 3L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 3L,
2L, 2L), Great.deal.Quite.a.lot = c(42L, 36L, 38L, 41L, 41L,
42L, 45L, 48L, 44L, 48L, 48L, 52L, 48L, 46L, 52L, 53L, 53L, 50L,
45L, 60L, 56L, 58L, 59L, 56L, 57L, 57L, 54L, 53L, 56L, 59L, 56L,
52L, 59L, 61L, 57L, 66L, 64L, 62L, 64L, 65L, 64L, 68L, 65L)), class = "data.frame", row.names = c(NA,
-43L))
Ответ №1:
Это работает для меня :
#install.packages('extrafont')
library(extrafont)
library(ggplot2)
font_import() #Import all fonts
ggplot(mtcars, aes(mpg, disp))
geom_point()
annotate(geom="text", x = 30, y = 200, label = "This is Title",
color="forestgreen",size = 5, fontface = "bold", family="Comic Sans MS")
Чтобы узнать все доступные шрифты, вы можете использовать fonts()
функцию.
fonts()
# [1] "CM Roman" "CM Roman Asian" "CM Roman CE"
# [4] "CM Roman Cyrillic" "CM Roman Greek" "CM Sans"
# [7] "CM Sans Asian" "CM Sans CE" "CM Sans Cyrillic"
# [10] "CM Sans Greek" "CM Symbol" "CM Typewriter"
# [13] "CM Typewriter Asian" "CM Typewriter CE" "CM Typewriter Cyrillic"
# [16] "CM Typewriter Greek" ".SF Compact Rounded" ".Keyboard"
# [19] ".New York" ".SF Compact" "System Font"
# [22] ".SF NS Mono" ".SF NS Rounded" "Academy Engraved LET"
# [25] "Andale Mono" "Apple Braille" "AppleMyungjo"
#...
#...
Комментарии:
1. Когда я использую
fonts()
Calibri, появляется, но я все равно получаю то же сообщение об ошибке, когда пытаюсь его использовать. Я получаю ту же ошибку, когда по какой-то причине использую любой шрифт, кроме базового three или Georgia2. Конечно, я не пытаюсь сохранить в формате pdf или что-то в этом роде
3. @SarahSmith Использование вашего кода и данных отлично работает для меня без каких-либо ошибок
family = "Comic Sans MS"
(у меня нет шрифта «Calibri»). Я думаю, у вас может возникнуть проблема с установкой. Перезапустите R, снова установите пакетinstall.packages('extrafont')
и снова запустите свой код и посмотрите, изменится ли что-нибудь.4. Хорошо, когда я перезапустил R, это сработало, я понятия не имею, что происходит, но спасибо за вашу помощь!