VennDiagram: um pacote para a geração de diagramas altamente personalizáveis Venn e Euler em R

Almost all graphical options in the VennDiagram package have been parametrizized and made customizable. Os valores padrão foram selecionados para gerar diagramas sensíveis, então em casos simples um alto nível de customização não é necessário. A Figura 1 destaca a diversidade de parametrizações disponíveis. Existem quatro grandes grupos de parâmetros gráficos: shape-fill, shape-line, etiquetas e títulos. O shape-fill refere-se às cores dentro de cada círculo ou elipse. Todas as cores disponíveis no ambiente R podem ser usadas, e a mistura alfa pode ser ajustada em cada forma. As linhas de forma são as linhas que rodeiam cada círculo ou elipse. Podem ser totalmente ausentes (figura 1C), sólidas (figuras 1A e 1B), ou qualquer outro tipo de linha R disponível (figura 1D). A sua cor pode ser alterada, e cada forma pode ter um conjunto de parâmetros separado. As etiquetas referem-se tanto às legendas que descrevem cada círculo ou elipse como aos números que os compõem. Novamente, estes podem ser personalizados em termos de cor, tipo de fonte e tamanho de fonte com qualquer parâmetro R disponível. As posições das etiquetas das legendas também podem ser personalizadas. Os títulos, que incluem o título principal e o subtítulo como demonstrado na figura 1D, também podem ser personalizados da mesma forma que as etiquetas.

Figure 1
figure1

Os quatro tipos de diagramas Venn desenhados pelo pacote VennDiagram. A) Um diagrama Venn de um conjunto mostrando características rudimentares personalizáveis tais como tamanho da fonte da etiqueta, face da fonte da etiqueta, e preenchimento da forma. B) Um diagrama Venn de dois conjuntos mostrando características mais avançadas, tais como escala, especificações individuais de preenchimento de forma, e colocação de etiquetas individuais com legendas. C) Um diagrama Venn de três conjuntos mostrando um tipo de linha de forma diferente (“transparente”) e a opção “texto” de colocação da etiqueta de legenda onde as etiquetas de legenda são fixadas às etiquetas de área. D) Um diagrama Venn de quatro conjuntos mostrando uma combinação de todos os recursos anteriores mais a capacidade de personalizar os títulos. O código para gerar todos os diagramas mostrados aqui está incluído no arquivo adicional 3.

Além destes elementos gráficos específicos, VennDiagram também oferece muitas opções gerais, tais como a escala, rotação ou inversão dos diagramas. A escala do diagrama foi implementada com o objetivo de exibir diagramas Venn onde os tamanhos gráficos das áreas parciais (áreas delimitadas em todos os lados por curvas e que não podem ser subdivididas) realmente correspondem aos valores numéricos do número de elementos dentro de cada região. A escala de diagramas Venn de dois conjuntos e um número selecionado de diagramas Venn de três conjuntos é possível – discutimos abaixo os desafios de tornar isso possível para todos os casos de três conjuntos. O uso do escalonamento pode, por vezes, levar a que áreas sobrepostas sejam demasiado pequenas para etiquetas numéricas. A Figura 2, linha 1, coluna 1 mostra uma linha de conexão gerada programmaticamente que permite o tratamento especial deste caso. O reconhecimento automático de um grande número de diagramas Euler é implementado, mas este modo pode ser desativado com um parâmetro de chamada de função para traçar diagramas Venn padrão. A Figura 2, linha 1, colunas 2 e 3 mostram dois exemplos de diagramas Euler de dois conjuntos. As linhas 2 e 3 mostram um subconjunto de diagramas Euler de três conjuntos implementados, com a linha 3 mostrando os da variedade escalável. Observamos que a figura 2 é apresentada em preto e branco para destacar as diferenças de composição entre os diagramas, mas os parâmetros gráficos e customizações usadas na figura 1 estão totalmente disponíveis. Enquanto o VennDiagram tem como padrão escrever gráficos em arquivos TIFF de alta resolução, se o parâmetro de nome de arquivo for definido como NULL o objeto raw grid pode ser retornado e usado em qualquer modo gráfico disponível em R. O código para gerar todas as figuras é dado em Additional File 3 e um exemplo de todas as parametrizações disponíveis é mostrado em Additional File 4.

>

Figure 2
figure2

Selected Venn diagram special cases and Euler diagrams drawn by the VennDiagram package. Linha 1, coluna 1: linhas automaticamente desenhadas, personalizáveis que otimizam a exibição de áreas parciais quando áreas parciais individuais se tornam muito pequenas em diagramas Venn de dois conjuntos. Fila 1, coluna 2: um diagrama Euler de dois conjuntos mostrando a inclusão total de um dos conjuntos. Fila 1, coluna 3: um diagrama Euler de dois conjuntos mostrando dois conjuntos distintos. Fila 2, coluna 1: um diagrama Euler de três conjuntos onde um conjunto não tem elementos discretos. Fila 2, coluna 2: um diagrama Euler de três conjuntos onde um conjunto não tem elementos discretos é totalmente incluído em um dos outros dois conjuntos. Linha 2, coluna 3: um diagrama Euler de três conjuntos onde dois conjuntos não possuem elementos discretos e estão incluídos em um terceiro conjunto maior. Fila 3, coluna 1: um diagrama Euler de três conjuntos mostrando a inclusão total de dois conjuntos que são distintos do terceiro conjunto. Fila 3, coluna 2: um diagrama Euler de três conjuntos onde um conjunto é totalmente incluído em outro conjunto, que por sua vez é totalmente incluído no terceiro conjunto. Fila 3, coluna 2: um diagrama Euler de três conjuntos que mostra três conjuntos distintos. O código para gerar todos os diagramas mostrados aqui está incluído no arquivo adicional 3.

Discussão

Durante o desenvolvimento do pacote VennDiagram, descobriu-se que era impossível desenhar diagramas Venn precisos e em escala com três conjuntos usando círculos. Este enigma é ilustrado no seguinte cenário. Em um sistema de dois círculos A e B, as distâncias entre os centros dos círculos, dAB, poderiam ser determinadas desde que as áreas (AA e AB respectivamente) e a área de intersecção (AA ∩ AB) fossem ambas conhecidas. Isto é possível porque num sistema de dois círculos, um único AA ∩ AB corresponde a um valor único para o dAB. Portanto, um sistema de três círculos A, B, e C, dAB, dBC, dAC poderia ser calculado desde que AA, AB, AC, AA ∩ AB, AA ∩ AC, AB ∩ AC sejam todos conhecidos. No entanto, dAB, dBC, dAC fazem um triângulo único, implicando que um diagrama Venn pode ser desenhado sem nunca se conhecer a intersecção geral AA ∩ AB ∩ AC. Em outras palavras, o tamanho da sobreposição entre os três círculos não altera a apresentação dos diagramas Venn em escala — a área é inalterada mesmo que um sistema tenha zero interseção total (ou seja, AA ∩ AB ∩ AC = 0)! Este enigma resulta da escolha (arbitrária) dos círculos para representar o tamanho definido, o que reduz os graus de liberdade em um. Soluções únicas podem ser identificadas usando elipses ou polígonos para desenhar diagramas Venn, mas os diagramas resultantes perderiam o reconhecimento instantâneo e a familiaridade associados aos diagramas Venn circulares, derrotando o ponto de uma conveniente exibição de informação. Os diagramas não circulares também exigiriam algoritmos iterativos para calcular as posições e tamanhos das formas, aumentando grandemente as cargas computacionais, como já foi discutido por outros . Consequentemente, o escalonamento dos diagramas Venn de três conjuntos está desabilitado no pacote VennDiagram. Similarmente, diagramas Venn contendo mais de quatro conjuntos não foram implementados no pacote VennDiagram porque eles se tornam muito complexos para visualização intuitiva.

Uma advertência geral quando se usam diagramas Euler é que embora eles reduzam a complexidade gráfica de alguns diagramas Venn, suas formas não-tradicionais também podem ser menos reconhecíveis em alguns casos. Quando áreas vazias estão presentes, o usuário precisa escolher entre a familiaridade dos diagramas Venn e o aumento da precisão dos diagramas Euler. A Figura 3 ilustra uma situação onde um diagrama Venn ou Euler pode ser apropriado dependendo das preferências do usuário.

Figure 3
figure3

Uma comparação lado a lado de um diagrama Euler e um diagrama Venn para os mesmos conjuntos hipotéticos. A) O diagrama de Euler mostra apenas áreas não zero e, portanto, pode ser mais preciso graficamente. B) O diagrama Venn mostra a área inexistente como uma área com conteúdo zero. Embora isto não seja graficamente exato, ele preserva a capacidade de reconhecimento de um diagrama Venn.

O pacote VennDiagram trata todos os diagramas Euler de dois conjuntos e a maioria dos diagramas Euler de três conjuntos concebíveis. Os diagramas Euler de três conjuntos que não puderam ser desenhados usando círculos ou elipses não são suportados. Por exemplo, um diagrama de Euler para o caso em que dois conjuntos não-intersectantes compreendem o terceiro conjunto não pode ser desenhado usando círculos e elipses, embora possa ser desenhado usando polígonos. Este tipo de figura carece de um layout analítico pronto e exigiria um ajuste iterativo; não há diagramas Euler com polígono, mas diagramas Venn padrão estão disponíveis para estes poucos casos não suportados.

Após a comparação com outros programas capazes de gerar diagramas Venn (Tabela 1), as vantagens do pacote VennDiagram incluem:

  • Desenhar diagramas Euler usando círculos e/ou elipses com dois ou três conjuntos

  • Obtendo maior customização para gerar diagramas mais elegantes

  • Disponibilidade no conjuntousado R ambiente estatístico

  • Geração de arquivos TIFF de alta resolução que são padrão em publicações

Tabela 1 Uma comparação das características de vários programas capazes de gerar diagramas Venn.

Deixe uma resposta

O seu endereço de email não será publicado.