资源算法Venn-Gogh

Venn-Gogh

2020-02-20 | |  37 |   0 |   0

Venn-Gogh

I noticed the limitation of online generator for Venn diagram while I was working on my visualisation for overlaps between 2 group; circles are not drawn in proportion to their values / lack of customisation to blend the Venn diagram into presentation slides.

An option would be to manually draw out a Venn diagram that suit my need, but it would be time consuming and not reproducible should I want to make changes or generate more charts.

Using the available Python packages, I wrote up a script which allow user to create meaningful Venn diagram that are proportional to the group's value, with the ability for the user to customise the chart. For now it is hosted on Jupyter notebook due to the ease of launching and quickly generating the Venn diagram.

General Code Dependencies

  • Check py37_requirements.txt for dependencies

Future Works

If the time and resources allow, I will host this Venn diagram generator on a web server, allowing non technical users to customize & generate Venn diagram.

Example

Venn Diagram (2 Group)

# Group1 vs Group2 (input here)group1 = 0.65group2 = 0.25overlap = 0.1labels = ["Group 1", "Group 2"]
chart_title = "Group 1 vs. Group 2 Overlap"# plot venn diagramplt.figure(figsize=(8,10), facecolor='None') #set chart area and background colourvenn_chart = venn2(subsets=[group1, group2, overlap],  
                   set_labels=(labels),  
                   set_colors=['#006ba4', '#ff800e'], #change circle's colour
                   subset_label_formatter=lambda x: f"{x:1.1%}") 
for text in venn_chart.set_labels:
    text.set_fontsize(14) #set label's fontsize 
    text.set_color('black') #set label's font colourfor text in venn_chart.subset_labels:
    text.set_fontsize(16) #set circle's value fontsize 
    text.set_color('white') #set circle's value font colour
    text.set_alpha(1) #set circle's value font transparencyplt.title(chart_title, fontsize='xx-large', color='blue') #set title

Venn Diagram (3 Group)

# Group1 vs Group2 vs Group3 (input here)group1 = 0.5075group2 = 0.24group3 = 0.2427overlap_grp1_2 = 0.015overlap_grp2_3 = 0.0225overlap_grp3_1 = 0.0585overlap_grp_all = 0.1067labels = ["Group 1", "Group 2", "Group 3"]
chart_title = "Group 1 / Group 2 / Group 3 Overlap"# plot venn diagramplt.figure(figsize=(8,10), facecolor='None') #set chart area and background colourvenn_chart = venn3(subsets=[group1, group2, overlap_grp1_2, group3, overlap_grp3_1, overlap_grp2_3, overlap_grp_all],  
                   set_labels=(labels),  
                   subset_label_formatter=lambda x: f"{x:1.1%}") 
for text in venn_chart.set_labels:
    text.set_fontsize(14) #set label's fontsize 
    text.set_color('teal') #set label's font colourfor text in venn_chart.subset_labels:
    text.set_fontsize(16) #set circle's value fontsize
    text.set_color('white') #set circle's value font colour
    text.set_alpha(1) #set circle's value font transparency, 0 as full transparentplt.title(chart_title, fontsize='xx-large', color='blue') #set title


上一篇:van-gogh-first-prototype

下一篇:Gogh-blog

用户评价
全部评价

热门资源

  • seetafaceJNI

    项目介绍 基于中科院seetaface2进行封装的JAVA...

  • spark-corenlp

    This package wraps Stanford CoreNLP annotators ...

  • Keras-ResNeXt

    Keras ResNeXt Implementation of ResNeXt models...

  • capsnet-with-caps...

    CapsNet with capsule-wise convolution Project ...

  • shih-styletransfer

    shih-styletransfer Code from Style Transfer ...