All Projects → yanlinlin82 → Ggvenn

yanlinlin82 / Ggvenn

Licence: other
Venn Diagram by ggplot2, with really easy-to-use API.

Programming Languages

r
7636 projects

Projects that are alternatives of or similar to Ggvenn

Soccergraphr
Soccer Analytics in R using OPTA data
Stars: ✭ 42 (-41.67%)
Mutual labels:  ggplot2
Slop
Simple Lightweight Option Parsing - ✨ new contributors welcome ✨
Stars: ✭ 1,067 (+1381.94%)
Mutual labels:  easy-to-use
Ggthemes
Additional themes, scales, and geoms for ggplot2
Stars: ✭ 1,107 (+1437.5%)
Mutual labels:  ggplot2
Art
🎨 ASCII art library for Python
Stars: ✭ 1,026 (+1325%)
Mutual labels:  easy-to-use
Pnet
High level Java network library
Stars: ✭ 49 (-31.94%)
Mutual labels:  easy-to-use
Colormap
R package to generate colors from a list of 44 pre-defined palettes
Stars: ✭ 55 (-23.61%)
Mutual labels:  ggplot2
Niceprogressbar
a nice progressbar for android
Stars: ✭ 37 (-48.61%)
Mutual labels:  easy-to-use
Easygameframeworkopen
基于Typescript的渐进式通用游戏前端开发框架
Stars: ✭ 65 (-9.72%)
Mutual labels:  easy-to-use
Nclib
Netcat as a python library
Stars: ✭ 51 (-29.17%)
Mutual labels:  easy-to-use
Deepsleepscheduler
DeepSleepScheduler is a lightweight, cooperative task scheduler library with configurable sleep and task supervision.
Stars: ✭ 59 (-18.06%)
Mutual labels:  easy-to-use
Korra
A quick and simple encrypted file store for easy sharing within your organisation
Stars: ✭ 46 (-36.11%)
Mutual labels:  easy-to-use
Eyebrows
An eyebrows gradient color animation for android.
Stars: ✭ 49 (-31.94%)
Mutual labels:  easy-to-use
Golang Paytm
Quick Paytm Integration using Golang
Stars: ✭ 55 (-23.61%)
Mutual labels:  easy-to-use
Ezxss
ezXSS is an easy way for penetration testers and bug bounty hunters to test (blind) Cross Site Scripting.
Stars: ✭ 1,022 (+1319.44%)
Mutual labels:  easy-to-use
Vulkan2drenderer
Easy to use 2D rendering engine using Vulkan API as backend.
Stars: ✭ 60 (-16.67%)
Mutual labels:  easy-to-use
Ggplot Courses
👨‍🏫 ggplot2 Teaching Material
Stars: ✭ 40 (-44.44%)
Mutual labels:  ggplot2
Ggeconodist
📉 Create Diminutive Distribution Charts
Stars: ✭ 53 (-26.39%)
Mutual labels:  ggplot2
Ggpol
🌍 Parliament diagrams and more for ggplot2
Stars: ✭ 71 (-1.39%)
Mutual labels:  ggplot2
Nat
nat - the 'ls' replacement you never knew you needed
Stars: ✭ 1,129 (+1468.06%)
Mutual labels:  easy-to-use
Esquisse
RStudio add-in to make plots with ggplot2
Stars: ✭ 1,097 (+1423.61%)
Mutual labels:  ggplot2

ggvenn

Venn Diagram by ggplot2, with really easy-to-use API. This package is inspired by Venny

Installation

if (!require(devtools)) install.packages("devtools")
devtools::install_github("yanlinlin82/ggvenn")

Quick Start

This package supports both list and data.frame type data as input.

For list data (each element is a set):

library(ggvenn)

a <- list(`Set 1` = c(1, 3, 5, 7, 9),
          `Set 2` = c(1, 5, 9, 13),
          `Set 3` = c(1, 2, 8, 9),
          `Set 4` = c(6, 7, 10, 12))
ggvenn(a, c("Set 1", "Set 2"))            # draw two-set venn
ggvenn(a, c("Set 1", "Set 2", "Set 3"))   # draw three-set venn
ggvenn(a)   # without set names, the first 4 elements in list will be chose to draw four-set venn

For data.frame data (each logical column is a set):

d <- tibble(value   = c(1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13),
            `Set 1` = c(T, F, T, T, F, T, F, T, F,  F,  F),
            `Set 2` = c(T, F, F, T, F, F, F, T, F,  F,  T),
            `Set 3` = c(T, T, F, F, F, F, T, T, F,  F,  F),
            `Set 4` = c(F, F, F, F, T, T, F, F, T,  T,  F))
ggvenn(d, c("Set 1", "Set 2"))           # draw two-set venn
ggvenn(d, c("Set 1", "Set 2", "Set 3"))  # draw three-set venn
ggvenn(d)   # without set names, the first 4 logical column in data.frame will be chose to draw four-set venn

For data.frame data, there is also another way to plot in ggplot grammar:

# draw two-set venn (use A, B in aes)
ggplot(d, aes(A = `Set 1`, B = `Set 2`)) +
  geom_venn() + theme_void() + coord_fixed()

# draw three-set venn (use A, B, C in aes)
ggplot(d, aes(A = `Set 1`, B = `Set 2`, C = `Set 3`)) +
  geom_venn() + theme_void() + coord_fixed()

# draw four-set venn (use A, B, C, D in aes)
ggplot(d, aes(A = `Set 1`, B = `Set 2`, C = `Set 3`, D = `Set 4`)) +
  geom_venn() + theme_void() + coord_fixed()

Screenshots

Venn 2 Venn 3 Venn 4

More Options

There are more options for customizing the venn diagram.

  1. Tune the color and size

    For filling:

    • fill_color - default is c("blue", "yellow", "green", "red")
    • fill_alpha - default is 0.5

    For stroke:

    • stroke_color - default is "black"
    • stroke_alpha - default is 1
    • stroke_size - default is 1
    • stroke_linetype - default is "solid"

    For set name:

    • set_name_color - default is "black"
    • set_name_size - default is 6

    For text:

    • text_color - default is "black"
    • text_size - default is 4

    All parameters above could be used in both ggvenn() and geom_venn().

    For example:

    a <- list(A = 1:4, B = c(1,3,5))
    ggvenn(a, stroke_linetype = 2, stroke_size = 0.5,
      set_name_color = "red", set_name_size = 15,
      fill_color = c("pink", "gold"))
    
  2. Show elements

    • show_elements - default is FALSE
    • label_sep - text used to concatenate elements, default is ","

    For example:

    a <- list(A = c("apple", "pear", "peach"),
              B = c("apple", "lemon"))
    ggvenn(a, show_elements = TRUE)
    
    ggvenn(a, show_elements = TRUE, label_sep = "\n")  # show elements in line
    
  3. Hide percentage

    • show_percentage - default is TRUE

    For example:

    a <- list(A = 1:5, B = 1:2)
    ggvenn(a, show_percentage = FALSE)
    
  4. Change digits of percentage

    • digits - default is 1

    For example:

    a <- list(A = 1:5, B = 1:2)
    ggvenn(a, digits = 2)
    
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].