Я изо всех сил пытаюсь найти способ изменить стиль шрифта и размер шрифта рисунков в R. Мне нужен весь текст на рисунке в Arial 12. Я часто использую команду cex для увеличения и уменьшения шрифта, но сейчас мне нужен именно размер шрифта 12. Я не использую какой-либо специализированный пакет для построения графиков, а просто использую базовые функции построения графиков R, такие какplot().
Я попытался установить и использовать пакет extrafont, следуя этому посту: Изменение шрифтов для графиков в R, но выдает следующую ошибку. Не понимаю, почему пишет «не удалось найти функцию «тема». Я установил и загрузил пакет и следовал инструкциям, приведенным в сообщении.
> plot(hfit) +
+ theme(text=element_text(family = "Times New Roman", face = "bold",
size=12))
Error in theme(text = element_text(family = "Times New Roman", face
= "bold", :
could not find function "theme"
Из этого поста: указание размера шрифта в цифрах R Я думал, что могу использовать par(ps=12) для размера шрифта 12, но не смог понять, как именно использовать эту функцию. Я попробовал этот «plot(hfit, par(ps=12))», но думаю, что этот код неправильный. Если кто-то может, подскажите мне какой-нибудь простой способ получить все шрифты рисунков в Arial 12.
Спасибо
Вы можете указать font
и family
прямо в plot
. theme()
— функция ggplot2.
> plot(1:10, main='normal')
> plot(1:10, main='normal/cex', cex.axis=1.5, cex.lab=1.5)
> plot(1:10, font=2, main='bold')
> plot(1:10, font=2, main='bold/cex', cex.axis=1.5, cex.lab=1.5)
> plot(1:10, family='Roman', main='Roman')
> plot(1:10, family='Roman', main='Roman/cex', cex.axis=1.5, cex.lab=1.5)
> plot(1:10, font=2, family='Roman', main='Roman/bold')
> plot(1:10, font=2, family='Roman', main='Roman/bold/cex', cex.axis=1.5, cex.lab=1.5)
@Arsala Ах, для размера шрифта есть, например, cex.axis
и cex.lab
, см. обновление.
Спасибо. Есть ли способ указать размер шрифта 12? Размер шрифта 12, который мы используем в Windows.
@Арсала Я думаю, это описано в другом ответе.
Интересно, заинтересован ли ОП напрямую в cex
. Из ?par
:
cex Числовое значение, указывающее величину, на которую следует увеличить отображаемый текст и символы относительно значения по умолчанию. Это значение начинается с 1, когда устройство открывается, и сбрасывается при изменении макета, например. установив mfrow.
Похоже, они хотели бы установить размер шрифта в пунктах, что больше похоже на ps
. Из ?par
:
PS целое число; размер текста (но не символов).
Конечно, ОП затем начинает интересоваться cex
, когда необходимо сбросить увеличение названия сюжета или любого другого элемента сюжета. На моей машине кажется, что cex = 1 составляет 12 очков, и, следовательно, cex = 1,5 будет 18 очков.
ОП также хотел бы установить семейство шрифтов Arial, синтаксис которого может отличаться в зависимости от ОС и настроек.
В Windows можно проверить сопоставление шрифтов по умолчанию с помощью windowsFonts()
:
windowsFonts()
#> $serif
#> [1] "TT Times New Roman"
#>
#> $sans
#> [1] "TT Arial"
#>
#> $mono
#> [1] "TT Courier New"
Created on 2024-05-06 with reprex v2.1.0
Что на моей машине с Windows предполагает, что Arial уже сопоставлен с sans.
В Macintosh/Linux для этой цели можно использовать X11Fonts()
:
X11Fonts()
#> $serif
#> [1] "-*-times-%s-%s-*-*-%d-*-*-*-*-*-*-*"
#>
#> $sans
#> [1] "-*-helvetica-%s-%s-*-*-%d-*-*-*-*-*-*-*"
#>
#> $mono
#> [1] "-*-courier-%s-%s-*-*-%d-*-*-*-*-*-*-*"
#>
#> $Times
#> [1] "-adobe-times-%s-%s-*-*-%d-*-*-*-*-*-*-*"
#>
#> $Helvetica
#> [1] "-adobe-helvetica-%s-%s-*-*-%d-*-*-*-*-*-*-*"
#>
#> $CyrTimes
#> [1] "-cronyx-times-%s-%s-*-*-%d-*-*-*-*-*-*-*"
#>
#> $CyrHelvetica
#> [1] "-cronyx-helvetica-%s-%s-*-*-%d-*-*-*-*-*-*-*"
#>
#> $Arial
#> [1] "-monotype-arial-%s-%s-*-*-%d-*-*-*-*-*-*-*"
#>
#> $Mincho
#> [1] "-*-mincho-%s-%s-*-*-%d-*-*-*-*-*-*-*"
Created on 2024-05-06 with reprex v2.1.0
Это говорит о том, что Arial сопоставлен с Arial.
Конечно, сопоставление шрифтов может усложниться, если нужный шрифт еще не сопоставлен. К счастью, Arial кажется довольно стандартным шрифтом.
Я подумал, что ОП, возможно, будет больше заинтересован в том, чтобы увидеть что-то подобное.
Обратите внимание: похоже, что значения по умолчанию для cex.axis и cex.lab уже могут быть установлены на 1, поскольку весь текст имеет одинаковый размер. Я также отобразил это в текстовом документе, чтобы проверить размер шрифта, и, по крайней мере, при выводе в слово шрифт графика составляет 12 пунктов по желанию.
par(ps = 12)
plot(
pressure,
main = "pressure by temperature",
family = "sans", # as per my window machine font mappings
cex.main = 1, # re-set title magnification from 1.5? default
font.main = 1 # re-set title format to plain from bold default
)
Created on 2024-05-06 with reprex v2.1.0
Мне кажется, что «font=2» не указывает размер. Это просто делает шрифт жирным.