Я хотел бы указать свои собственные палитры форм для ggplot2
хотя бы в качестве вектора для ввода в scale_shape_manual
. Мне очень нравится палитра парных фигур из JMP, но я заметил, что в R нет некоторых из этих фигур. В частности, отсутствуют боковые треугольники (например, |>
или <|
) или закрашенный перевернутый треугольник (например, \/
). Они доступны где-нибудь? Если нет, то как я могу указать эти дополнительные формы и есть ли способ заставить ggplot2
использовать их на графиках?
Создание новых палитр фигур в ggplot2 и другой графике R
Ответы (1)
Вы можете создать свою собственную палитру фигур, указав значения Unicode для нужных символов. Вы можете найти значения Unicode для различных геометрических фигур здесь. Например:
library(ggplot2)
ggplot(mtcars[mtcars$carb %in% 1:4,],
aes(wt, mpg, shape=factor(carb), colour=factor(carb))) +
geom_point(size=5) +
scale_shape_manual(values=c("\u25BA","\u25C4","\u25BC","\u25B2"))
Конечно, вы можете использовать символы Unicode и в базовой графике:
with(mtcars, plot(wt, mpg, pch="\u25BC"))
Не каждый символ Unicode отображается правильно. Я не уверен, почему, но это может быть связано с тем, какие шрифты вы установили.
person
eipi10
schedule
09.06.2015
Кроме того, я нашел два пакета для помощи со специальными символами, шрифтами и смайликами: cran.r-project.org/web/packages/emojifont/vignettes/ (автор YX Qiu) и github.com/dill/emoGG/issues (автор Д.Л.Миллер)
- person PatrickT; 08.05.2016
Я только что заметил, что в моей системе красный и зеленый символы не отображаются в консоли
R
(и не печатаются в PDF), хотя они появляются в консоли RStudio
, но ни один из 4 символов не отображается. распечатывается даже с cairo_pdf
или cairo_ps
устройств... Пока единственный вариант - печатать в формате PNG.
- person PatrickT; 08.05.2016
@PatrickT Я тоже это заметил. В некоторых случаях вы можете отобразить символы, указав другое начертание шрифта. Вот пример, где я это сделал. Пакет
extrafont
полезен для добавления новых шрифтов.
- person eipi10; 08.12.2016
Спасибо eipi10, очень полезно!
- person PatrickT; 08.12.2016