This repository comprises two components:
embedder
: A Java application for generating simplified, unsmoothed Euler diagrams from abstract descriptions of set systems.smoothEuler
: A Flask project for generating and visualizing smoothed Euler diagrams based on the results obtained from theembedder
.
Download the source code by running the following command in your terminal:
git clone https://github.com/tdavislab/EulerMerge.git
-
Input: The abstract description of a set system, which is specified within the
main
method ofembedder/src/euler/simplify/Simplify.java
. -
Ouput: Running
embedder/src/euler/simplify/Simplify.java
will applyalgorithms 1-5
as described in the paper, and output merge information and JSON files representing the resultant unsmoothed Euler diagram.
This folder applies the EulerSmooth algorithm and provides tools for visualizing Euler diagrams, based on the file generated by embedder
.
Before running the project, make sure to install the required Python packages using the following commands:
pip install flask
pip install matplotlib
pip install JPype1
pip install networkx
pip install shapely
cd EulerMerge/smoothEuler
python app.py
After running the above commands, you can access the interactive visualization demo by visiting http://127.0.0.1:5000/ on the local machine (If possible, please use Chrome). You will see an interface like the one below.
Triangulation
allows to visualize the triangulation of the Euler diagram, which indicates how an Euler diagram is derived.Zone graph
allows to visualize the zone graph.Iteration
andDistance
are parameters of the EulerSmooth algorithm, allowing to control the number of smoothing cycles performed, and the distance between nodes and curves, respectively.