/t-fdp

Source code, data, analysis code of experiment for the paper "Force-directed graph layouts revisited: a new force based on the t-Distribution".

Primary LanguageJupyter NotebookGNU Lesser General Public License v2.1LGPL-2.1

Force-directed graph layouts revisited: a new force based on the t-Distribution

An online javascript demo for t-FDP can be found here, and the source project for the demo is available here.


Contens:

  • analysis/

    • analysis/*.ipynb: python notebook for the source code to analyze the experimental results.
    • analysis/results: experimental results.
    • analysis/Figs : figures generated by the code.
  • data/ The copy of all tested graphs except oversized eight graphs due to github file size limit. All of these oversized graphs can be found in SNAP collection.

  • source_code/ : source code for t-FDP.

  • layout_results/ : layout results generated by all methods with five repeated runs.

    • layout_results/PMDS_init : layout results generated by the eight methods with PMDS initialization.
    • layout_results/RD_init : layout results generated by the eight methods with random initialization.
    • layout_results/Other : other three method(PMDS, SFDP and DRGraph).
    • layout_results/t-FDP_approx : layout results generated by four approximation method and the exact method of the t-FDP model.
  • run_tfdp.py : code for generating t-FDP layout results.

Environments

The code is tested under ubuntu 20.04.

Software requirements: Anaconda3, python3.8, gcc

Hardware requirements: Nvidia GPU (Mem >= 8GB, for ibFFT_GPU), CPU Mem >= 8GB.

cmd for conda install:

conda install -c conda-forge cupy cudatoolkit=11.2 jupyter notebook 
pip install scikit-learn pyfftw numba_kdtree pytorch torchvision pandas dask[dataframe]
pip install numpy==1.20.3 numba==0.54.1

and then you can use the jupyter notebook to open and run the analysis code.

setup for t-FDP

please refer to source_code/README.md

run for t-FDP

setup the environments and then run python run_tfdp.py.


Licensing

The source code is licensed under LGPL v2.1. License is available here.

If you have any problem, please submit an issue or email us.