Eunoia
Eunoia is a Rust library with bindings in R, Python, and JavaScript for fitting area-proportional Euler diagrams using circles, ellipses, and rectangles. It uses numerical optimization to find the best layout for representing set relationships accurately, even for more than three sets or complex relationships.
Eunoia creates area-proportional Euler diagrams using circles, ellipses, squares, and rectangles. While most Euler diagram software is limited to circles (which often can’t accurately represent set relationships), Eunoia uses numerical optimization to fit ellipses that can represent a wider range of set intersections accurately.
The package handles any number of sets and automatically finds the best layout using a two-step procedure: first generating an initial layout from pairwise relationships, then optimizing using all set relationships simultaneously. It’s ideal for visualizing overlapping categories in genomics, survey data, or any domain where set relationships need clear visual representation.
Citation
@inproceedings{larsson2018,
author = {Larsson, Johan and Gustafsson, Peter},
publisher = {CEUR Workshop Proceedings},
title = {A Case Study in Fitting Area-Proportional {Euler} Diagrams
with Ellipses Using Eulerr},
booktitle = {Proceedings of International Workshop on Set
Visualization and Reasoning},
volume = {2116},
pages = {84-91},
date = {2018-06-18},
address = {Edinburgh, United Kingdom},
url = {https://ceur-ws.org/Vol-2116/paper7.pdf},
langid = {en}
}