В первой части:
В этой части: цвета и шрифты в графиках R.
Цвета — это красиво, но куда важнее то, что они помогают различать типы объектов, градации свойства. В большинстве функций R можно использовать названия цветов, RGB или шестнадцатеричные значения. В простом базовом графике R ниже
![](https://habrastorage.org/files/48f/c00/6fe/48fc006fe2834aa5a70034b894ec2100.png)
Как видно, RGB здесь варьируется от 0 до 1. Это настройка по умолчанию для R, но можно установить и диапазон от 0 до 255, используя команду
Можно установить прозрачность элемента, используя параметр
![](https://habrastorage.org/files/f99/607/a12/f99607a127d741ee9ffcdf79dbb9e93e.png)
Если используется шестнадцатеричное представление цвета, можно установить коэффициент прозрачности, используя
![](https://habrastorage.org/files/49b/d95/bca/49bd95bca35b4559a8049a7cbff14ca0.png)
Если вы планируете использовать встроенные названия цветов, вот как можно получить их все:
В большинстве случаев нам нужно или несколько контрастных цветов, или оттенки одного цвета. В R есть встроенная функция палитры, которая может это сгенерировать. Например:
![](https://habrastorage.org/files/8be/21e/2c7/8be21e2c736c4c758b366977040ba4eb.png)
![](https://habrastorage.org/files/949/1ec/e61/9491ece619f34e458fbfc9d5e472d35f.png)
Мы также можем создавать свои собственные градиенты с помощью
![](https://habrastorage.org/files/af8/8e2/16a/af88e216ab8148af8a37d6657580f61a.png)
Чтобы добавить прозрачность в
![](https://habrastorage.org/files/afc/bdb/abc/afcbdbabc23240d8a8f792e99af57380.png)
Нахождение хорошей комбинации цветов — непростая задача, при этом встроенные палитры R довольно ограничены. К счастью, эту проблему решают и другие пакеты:
В этом пакете одна главная функция —
![](https://habrastorage.org/files/af8/a28/4d0/af8a284d0a0a4824b0db0a6be4680319.png)
![](https://habrastorage.org/files/348/bc5/0e0/348bc50e0b6f4806ba51f652c3422ecb.png)
![](https://habrastorage.org/files/d33/f5f/a45/d33f5fa450ad4e60bd656d9accfd6d20.png)
Использование палитр
![](https://habrastorage.org/files/abc/892/0ea/abc8920ea74b40a0bc387b37debf6ba9.png)
Использование разных шрифтов в графиках R может потребовать определенных усилий. Это особенно актуально для пользователей Windows, пользователи Mac и Linux, скорее всего, могут благополучно пропустить этот раздел.
Для того, чтобы импортировать шрифты из ОС в R, воспользуемся пакетом
Теперь шрифты доступны, и можно делать что-то такое:
![](https://habrastorage.org/files/943/172/57a/94317257a03f40a981d534fce2a85d14.png)
Когда вы сохраняете графики как PDF-файлы, тоже можно установить шрифты:
- визуализация сетей: зачем? каким образом?
- параметры визуализации
- best practices — эстетика и производительность
- форматы данных и подготовка
- описание наборов данных, которые используются в примерах
- начало работы с igraph
В этой части: цвета и шрифты в графиках R.
Краткое введение I: цвета в графиках R
Цвета — это красиво, но куда важнее то, что они помогают различать типы объектов, градации свойства. В большинстве функций R можно использовать названия цветов, RGB или шестнадцатеричные значения. В простом базовом графике R ниже
x
и y
— координаты точек, pch
— символ для обозначения точек, cex
— размер точки и col
— цвет. Чтобы узнать, какие бывают параметры для построения графиков в R, выполните команду ?par
.plot(x=1:10, y=rep(5,10), pch=19, cex=3, col="dark red")
points(x=1:10, y=rep(6, 10), pch=19, cex=3, col="557799")
points(x=1:10, y=rep(4, 10), pch=19, cex=3, col=rgb(.25, .5, .3))
![](https://habrastorage.org/files/48f/c00/6fe/48fc006fe2834aa5a70034b894ec2100.png)
Как видно, RGB здесь варьируется от 0 до 1. Это настройка по умолчанию для R, но можно установить и диапазон от 0 до 255, используя команду
rgb(10, 100, 100, maxColorValue=255)
.Можно установить прозрачность элемента, используя параметр
alpha
(от 0 до 1):plot(x=1:5, y=rep(5,5), pch=19, cex=12, col=rgb(.25, .5, .3, alpha=.5), xlim=c(0,6))
![](https://habrastorage.org/files/f99/607/a12/f99607a127d741ee9ffcdf79dbb9e93e.png)
Если используется шестнадцатеричное представление цвета, можно установить коэффициент прозрачности, используя
adjustcolor
из пакета grDevices
. Ради интереса также покрасим фон графика в серый с помощью функции par()
для установки настроек графики. par(bg="gray40")
col.tr <- grDevices::adjustcolor("557799", alpha=0.7)
plot(x=1:5, y=rep(5,5), pch=19, cex=12, col=col.tr, xlim=c(0,6))
![](https://habrastorage.org/files/49b/d95/bca/49bd95bca35b4559a8049a7cbff14ca0.png)
Если вы планируете использовать встроенные названия цветов, вот как можно получить их все:
colors() # List all named colors
grep("blue", colors(), value=T) # Colors that have "blue" in the name
В большинстве случаев нам нужно или несколько контрастных цветов, или оттенки одного цвета. В R есть встроенная функция палитры, которая может это сгенерировать. Например:
pal1 <- heat.colors(5, alpha=1) # 5 colors from the heat palette, opaque
pal2 <- rainbow(5, alpha=.5) # 5 colors from the heat palette, transparent
plot(x=1:10, y=1:10, pch=19, cex=5, col=pal1)
![](https://habrastorage.org/files/8be/21e/2c7/8be21e2c736c4c758b366977040ba4eb.png)
plot(x=1:10, y=1:10, pch=19, cex=5, col=pal2)
![](https://habrastorage.org/files/949/1ec/e61/9491ece619f34e458fbfc9d5e472d35f.png)
Мы также можем создавать свои собственные градиенты с помощью
colorRampPalette
. Обратите внимание, что colorRampPalette
возвращает функцию, которую можно использовать для генерации стольких цветов из этой палитры, сколько нужно.palf <- colorRampPalette(c("gray80", "dark red"))
plot(x=10:1, y=1:10, pch=19, cex=5, col=palf(10))
![](https://habrastorage.org/files/af8/8e2/16a/af88e216ab8148af8a37d6657580f61a.png)
Чтобы добавить прозрачность в
colorRampPalette
, нужно использовать параметр alpha=TRUE
:palf <- colorRampPalette(c(rgb(1,1,1, .2),rgb(.8,0,0, .7)), alpha=TRUE)
plot(x=10:1, y=1:10, pch=19, cex=5, col=palf(10))
![](https://habrastorage.org/files/afc/bdb/abc/afcbdbabc23240d8a8f792e99af57380.png)
Нахождение хорошей комбинации цветов — непростая задача, при этом встроенные палитры R довольно ограничены. К счастью, эту проблему решают и другие пакеты:
# If you don't have R ColorBrewer already, you will need to install it:
install.packages("RColorBrewer")
library(RColorBrewer)
display.brewer.all()
В этом пакете одна главная функция —
brewer.pal
. Для того, чтобы ей воспользоваться, нужно только выбрать необходимую палитру и количество цветов. Давайте взглянем на некоторые палитры RColorBrewer
:display.brewer.pal(8, "Set3")
![](https://habrastorage.org/files/af8/a28/4d0/af8a284d0a0a4824b0db0a6be4680319.png)
display.brewer.pal(8, "Spectral")
![](https://habrastorage.org/files/348/bc5/0e0/348bc50e0b6f4806ba51f652c3422ecb.png)
display.brewer.pal(8, "Blues")
![](https://habrastorage.org/files/d33/f5f/a45/d33f5fa450ad4e60bd656d9accfd6d20.png)
Использование палитр
RColorBrewer
в графах:pal3 <- brewer.pal(10, "Set3")
plot(x=10:1, y=10:1, pch=19, cex=4, col=pal3)
![](https://habrastorage.org/files/abc/892/0ea/abc8920ea74b40a0bc387b37debf6ba9.png)
Краткое введение II: шрифты в графиках R
Использование разных шрифтов в графиках R может потребовать определенных усилий. Это особенно актуально для пользователей Windows, пользователи Mac и Linux, скорее всего, могут благополучно пропустить этот раздел.
Для того, чтобы импортировать шрифты из ОС в R, воспользуемся пакетом
extrafont
:install.packages("extrafont")
library(extrafont)
# Import system fonts - may take a while.
font_import()
fonts() # See what font families are available to you now.
loadfonts(device = "win") # use device = "pdf" for pdf plot output.
Теперь шрифты доступны, и можно делать что-то такое:
library(extrafont)
plot(net, vertex.size=30)
plot(net, vertex.size=30, vertex.label.family="Arial Black" )
![](https://habrastorage.org/files/943/172/57a/94317257a03f40a981d534fce2a85d14.png)
Когда вы сохраняете графики как PDF-файлы, тоже можно установить шрифты:
# First you may have to let R know where to find ghostscript on your machine:
Sys.setenv(R_GSCMD = "C:/Program Files/gs/gs9.10/bin/gswin64c.exe")
# pdf() will send all the plots we output before dev.off() to a pdf file:
pdf(file="ArialBlack.pdf")
plot(net, vertex.size=30, vertex.label.family="Arial Black" )
dev.off()
embed_fonts("ArialBlack.pdf", outfile="ArialBlack_embed.pdf")
Wadime
У вас в ссылке на первую часть стоит локальный адрес, поправьте, пожалуйста.
Недавно прошел курс Data Visualization на Coursera — были там похожие темы про визуализацию сетей.
qc-enior
Спасибо, исправила.
Да, вдохновляюсь Coursera, в процессе прохождения data science specialization. Там тоже один из курсов посвящен визуализации (и не только).