Оси ggplot искажены .. Похоже на блоки Unicode - PullRequest
2 голосов
/ 27 мая 2020

Запуск Ubuntu 16.04; R 3.6.2; ggplot2 3.3.0

Запуск R под --nix

Если я запустил это ..

library(ggplot2)
data("midwest", package = "ggplot2")
ggplot(midwest, aes(x=area, y=poptotal))

Я получаю график с маленькими прямоугольниками для осей (Unicode? )

ggplot with garbled axes

I get the same little boxes if I use 'plot'

But If I run 'plot' add a 'family' attribute,

plot (1:10, family="arial") 

I get this (nice axes),

сюжет дает хорошие топоры с атрибутом 'семья'

Это показывает, что есть как минимум некоторые шрифты!

Вернуться к ggplot ....

Простым решением было бы выяснить (я пробовал), как установить семейство в ggplot.

Я пробовал,

ggplot(heightweight, aes(x= ageYear, y=heightIn, font="ariel")) + geom_point() 
ggplot(heightweight, aes(x= ageYear, y=heightIn, family="ariel")) + geom_point() 

Без помощи .. Маленькие коробочки. Примечание. Будет хорошо, если я поставлю family = "Zomb ie"

Кто-нибудь знает, как установить семейство в ggplot?

Лучшее решение?

Сложное решение для меня было бы выяснить, какие шрифты отсутствуют, установить их в --nix, а затем убедиться, что R (в --nix) может их найти .. Для меня это займет 4 дня и лекарства по рецепту.

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 07 августа 2020

Я думаю, что стоит переименовать эту проблему, потому что это проблема c, специфичная для Nix, и ее было довольно трудно найти. Основная проблема вызвана несоответствием между системным fontconfig и тем, что предоставляется nix.

https://discourse.nixos.org/t/fonts-in-nix-installed-packages-on-a-non-nixos-system/5871/6

Я исправил проблему, добавив явное fontconfig зависимость и добавление следующего в мою mkShell команду

shellHook = "export FONTCONFIG_FILE=${pkgs.fontconfig.out}/etc/fonts/fonts.conf";

После этого открытие R изнутри nix-оболочки и создание графиков работает должным образом.

1 голос
/ 27 мая 2020

После долгой игры у меня есть кое-что для работы!

Теперь у меня красивые заголовок и оси (больше никакого Unicode).

Вот фрагмент

ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() +
   ggtitle("Fuel Efficiency of 32 Cars") +
   xlab("Weight (x1000 lb)") + ylab("Miles per Gallon") +
   theme_bw() +
   theme(text=element_text(family="Garamond", size=14))

По-видимому, для установки семейства в ggplot используется «тема»,

theme(text=element_text(family="Garamond", size=14))

Я знаю, что это не идеальное решение, но оно меня помогает (без лекарств :-)).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...