Команда font-awesome пакета r- emojifont не отображает значки в Windows 10 - PullRequest
0 голосов
/ 21 декабря 2018

Когда я использую команду fontawesome из пакета emojifont, я получаю квадрат, а не значок, который я запрашивал.Я довольно новичок в R, может быть что-то очень простое, что мне не хватает, но это застряло у меня на некоторое время.

Я использую Windows 10, версия R обновлена, используется RStudio.Как сообщается, эти команды работают на компьютере linux правильно, см. Предыдущее обсуждение: Замените категориальные значения цветами светофора

в другом вопросе, который пользователь говорит запустить Windows ().Это не имеет значения, это важно? использование шрифта awesome в ggplot

Пример кода

> library(emojifont)
> load.fontawesome()

> fontawesome('fa-circle')
[1] ""

> fontawesome('fa-apple')
[1] ""

> fontawesome('fa-at')
[1] ""

Обновление: некоторые простые примеры можно воспроизвести в Интернете, но не другие.

set.seed(123)
x <- rnorm(10)
set.seed(321)
y <- rnorm(10)
plot(x, y, cex=0)
text(x, y, labels=emoji('cow'), cex=1.5, col='steelblue', family='EmojiOne')

d <- data.frame(x=x, y=y,
                label = sample(c(emoji('cow'), emoji('camel')), 10, replace=TRUE),
                type = sample(LETTERS[1:3], 10, replace=TRUE))

library("ggplot2")
ggplot(d, aes(x, y, color=type, label=label)) +
  geom_text(family="EmojiOne", size=6)

Это работает правильно, как вы можете видеть ниже Correct Output

Однако этот код создает только квадраты (и большинство других примеров, которые я пробовал)

set.seed(2016-03-09)
fa <- fontawesome(c('fa-github', 'fa-weibo', 'fa-twitter', 'fa-android', 'fa-coffee'))
d <- data.frame(x=rnorm(20),
                y=rnorm(20),
                label=sample(fa, 20, replace=T))

ggplot(d, aes(x, y, color=label, label=label)) +
  geom_text(family='fontawesome-webfont', size=6)+
  xlab(NULL)+ylab(NULL) +
  theme(legend.text=element_text(family='fontawesome-webfont'))

enter image description here

На изображении выше (и в большинстве примеров, которые я пробовал) я получаю квадраты вместо значков.Есть мысли, почему?

1 Ответ

0 голосов
/ 21 декабря 2018

Я не думаю, что он должен печататься на консоли, но только в графиках.

По сути, вы спрашиваете emojifont / fontawesome, какой из возможных более 1 миллиона кодовых точек соответствует Unicodeв кружок (это кодовая точка f51d), а затем напечатайте этот символ.

При черчении вы можете сказать, что хотите, чтобы этот символ печатался определенным шрифтом, и если вы выберете "fontawesome-webfont ", как, например, в примерах из emojifont, эти круги будут построены.

ggplot(d, aes(x, y, color=label, label=label)) +
    geom_text(family='fontawesome-webfont', size=6)

Теперь, если бы вы выбрали другое семейство шрифтов, эти ярлыки были бы напечатаны другим шрифтом.

За исключением того, что на практике кто-то, создающий шрифт, будет тщательно думать о том, как нарисовать свои буквы a, b и т. Д. Но у него не будет много времени, чтобы подумать о том, как нарисовать "codepoint f51d", дажеесли бы они знали, что это должен был быть только круг.И они не ожидают, что кто-либо когда-либо будет использовать такую ​​неясную кодовую точку.

Поэтому они заботятся о символах, которые ожидают использовать, и просто используют заполнитель для других символов, таких как ""

А в консоли у вас будет шрифт по умолчанию, в зависимости от того, какую консоль вы используете, например, в моей Rstudio-установке используется «консоль Lucida».Не уверен, какой шрифт показан в вашей консоли, но, видимо, он не имеет хорошего представления для "codepoint f51d"

Так что, чтобы показать его, вам нужно показать его правильным шрифтом: fontawesome.Что означает либо заговор, либо настройку вашей консоли на использование fontawesome.Хотя я не уверен, будет ли этот последний работать эффективно, это может привести к тому, что простые символы, такие как «А», будут также отображать заполнители, или, возможно, они использовали его для показа чего-то совершенно другого.

И вещь об использовании windows() заключается в том, что стандартное-rstudio-plotwindow иногда использует свои собственные значения по умолчанию и может не найти fontawesome.Но это касается только прорисовки в RStudio.

...