Quer compartilhar seu conteúdo em R-bloggers? clique aqui se você tiver um blog, ou aqui se não tiver.
Esta postagem apresenta o pacote R rougnet
, que envolve a biblioteca do java script rough.js para desenhar redes esboçadas semelhantes a desenhadas à mão. De todos os meus pacotes de rede, este é provavelmente o mais inútil, mas o mais divertido que desenvolvi.
O pacote está disponível até agora apenas no github, mas já tem uma página de pacote apropriado.
#install.packages("remotes")
remotes::install_github("schochastics/roughnet")
O pacote funciona apenas com objetos {{igraph}}.
library(igraph)
library(roughnet)
A única função real do pacote é roughnet()
que desenha um objeto igraph como uma rede esboçada.
Sem especificar qualquer estética, a função usa formas e cores padrão.
g
A função reconhece os seguintes atributos de vértice para personalizar a visualização:
- x coordenada x do vértice
- e coordenada y do vértice
- forma um de “círculo”, “retângulo”, (formas inovadoras: “coração”, “ar”, “terra”, “fogo”, “água”)
- preencher cor de preenchimento do vértice
- cor cor do traço do vértice
- derrame tamanho do curso
- estilo de preenchimento um de “hachura”, “sólido”, “ziguezague”, “hachura”, “pontos”, “tracejado”, “linha em ziguezague”
- Tamanho tamanho do vértice
- rótulo etiqueta de vértice
- pos posição do rótulo do vértice (c) enter, (n) ort, (e) ast, (s) outh, (w) est
V(g)$shape
Para bordas, existem apenas dois atributos suportados:
- cor cor da borda
- largura largura da borda
E(g)$color
Abaixo está um exemplo mais “realista” usando a famosa rede de caratê.
g
Rótulos de nó também podem ser colocados, mas infelizmente é um pouco mais tedioso se você simplesmente não quiser
coloque-os no centro (quando, digamos, usando algumas formas de nó inovadoras).
No exemplo abaixo, usamos as relações Aliados / Inimigos em “Avatar: O Último Mestre do Ar”, disponível em
o pacote signnet para ilustrar todos os recursos do roughnet, incluindo rótulos de nós.
Por padrão, os rótulos dos nós são colocados no centro do nó, mas podem ser colocados (n) ort, (e) ast, (s) fora ou (w) est do nó.
# install.packages(c("signnet","graphlayouts"))
library(signnet)
library(graphlayouts)
library(dplyr)
data("avatar") # Allies/Enemies relations in Avatar: The Last Airbender
main
Os gráficos podem ser salvos com a função save_roughnet()
, que precisa de {{pagedown}} para ser instalado.
Relacionados