pyforcedirectedlayout


Namepyforcedirectedlayout JSON
Version 0.80.2 PyPI version JSON
download
home_page
SummaryPython Implementation of a Force Directed Layout Algorithm
upload_time2024-03-12 23:25:22
maintainer
docs_urlNone
author
requires_python
licenseGNU AFFERO GENERAL PUBLIC LICENSE
keywords layout diagram python
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![](https://github.com/hasii2011/code-ally-basic/blob/master/developer/agpl-license-web-badge-version-2-256x48.png "AGPL")

[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://GitHub.com/Naereen/StrapDown.js/graphs/commit-activity)
[![CircleCI](https://dl.circleci.com/status-badge/img/gh/hasii2011/py-force-directed-layout/tree/master.svg?style=shield)](https://dl.circleci.com/status-badge/redirect/gh/hasii2011/py-force-directed-layout/tree/master)
[![PyPI version](https://badge.fury.io/py/pyforcedirectedlayout.svg)](https://badge.fury.io/py/pyforcedirectedlayout)


# Introduction
This project is the Python implementation of Brad Smith's article on [A Forced-Directed Diagram Layout Algorithm](https://www.brad-smith.info/blog/archives/129).  There were a few 
bumps on the road to get Brad's code manually converted from a Microsoft graphics platform to a pseudo-platform independent platform like [wxPython](https://wxpython.org) 
running on Mac OS.  I will not go into detail on what those bumps were.  But I want to make sure and document those [here](https://hsanchezii.wordpress.com).



# Details

## Install in your virtual environment

```bash
pip install pyforcedirectedlayout
```

## Configuration details

### These drive the algorithm

| Parameter       | Default Value | Description                                                                                     |
|-----------------|---------------|-------------------------------------------------------------------------------------------------|
| damping         | 0.1           | Value between 0 and 1 that slows the motion of the nodes during layout.                         |
| springLength    | 100           | Value in pixels representing the length of the imaginary springs that run along the connectors. |
| maxIterations   | 500           | Maximum number of iterations before the algorithm terminates                                    |
| attractionForce | 0.1           | The spring value                                                                                |
| repulsionForce  | 10000         | The repulsion value                                                                             |

### Randomize the layout

| Parameter | Default Value     | Description |
|-----------|:------------------|-------------|
| minPoint  | Point(x=10, y=10) |             |
| maxPoint  | Point(x=60, y=60) |             |

### Early Termination


| Parameter                | Default Value | Description                                                                                                               |
|--------------------------|---------------|---------------------------------------------------------------------------------------------------------------------------|
| minimumTotalDisplacement | 10            |                                                                                                                           |
| stopCount                | 15            | Stop execution after this many number of iterations where the `totalDisplacement` is less that `minimumTotalDisplacement` |

## Developer Notes

This project uses [buildlackey](https://github.com/hasii2011/buildlackey) for day-to-day development builds

___

# Note
For all kinds of problems, requests, enhancements, bug reports, etc., drop me an e-mail.
Written by <a href="mailto:email@humberto.a.sanchez.ii@gmail.com?subject=Hello Humberto">Humberto A. Sanchez II</a>  (C) 2024



![Humberto's Modified Logo](https://raw.githubusercontent.com/wiki/hasii2011/gittodoistclone/images/SillyGitHub.png)

I am concerned about GitHub's Copilot project.


I urge you to read about the
[Give up GitHub](https://GiveUpGitHub.org) campaign from
[the Software Freedom Conservancy](https://sfconservancy.org).

While I do not advocate for all the issues listed there, I do not like that
a company like Microsoft may profit from open source projects.

I continue to use GitHub because it offers the services I need for free.  But I continue
to monitor their terms of service.

Any use of this project's code by GitHub Copilot, past or present, is done
without my permission.  I do not consent to GitHub's use of this project's
code in Copilot.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "pyforcedirectedlayout",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "\"Humberto A. Sanchez II\" <Humbert.A.Sanchez.II@gmail.com>",
    "keywords": "layout,diagram,python",
    "author": "",
    "author_email": "\"Humberto A. Sanchez II\" <Humbert.A.Sanchez.II@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/36/93/0de76a97f6e047956969c7b458b39f46cf7a0140147abfdd0ca7453b125e/pyforcedirectedlayout-0.80.2.tar.gz",
    "platform": null,
    "description": "![](https://github.com/hasii2011/code-ally-basic/blob/master/developer/agpl-license-web-badge-version-2-256x48.png \"AGPL\")\n\n[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://GitHub.com/Naereen/StrapDown.js/graphs/commit-activity)\n[![CircleCI](https://dl.circleci.com/status-badge/img/gh/hasii2011/py-force-directed-layout/tree/master.svg?style=shield)](https://dl.circleci.com/status-badge/redirect/gh/hasii2011/py-force-directed-layout/tree/master)\n[![PyPI version](https://badge.fury.io/py/pyforcedirectedlayout.svg)](https://badge.fury.io/py/pyforcedirectedlayout)\n\n\n# Introduction\nThis project is the Python implementation of Brad Smith's article on [A Forced-Directed Diagram Layout Algorithm](https://www.brad-smith.info/blog/archives/129).  There were a few \nbumps on the road to get Brad's code manually converted from a Microsoft graphics platform to a pseudo-platform independent platform like [wxPython](https://wxpython.org) \nrunning on Mac OS.  I will not go into detail on what those bumps were.  But I want to make sure and document those [here](https://hsanchezii.wordpress.com).\n\n\n\n# Details\n\n## Install in your virtual environment\n\n```bash\npip install pyforcedirectedlayout\n```\n\n## Configuration details\n\n### These drive the algorithm\n\n| Parameter       | Default Value | Description                                                                                     |\n|-----------------|---------------|-------------------------------------------------------------------------------------------------|\n| damping         | 0.1           | Value between 0 and 1 that slows the motion of the nodes during layout.                         |\n| springLength    | 100           | Value in pixels representing the length of the imaginary springs that run along the connectors. |\n| maxIterations   | 500           | Maximum number of iterations before the algorithm terminates                                    |\n| attractionForce | 0.1           | The spring value                                                                                |\n| repulsionForce  | 10000         | The repulsion value                                                                             |\n\n### Randomize the layout\n\n| Parameter | Default Value     | Description |\n|-----------|:------------------|-------------|\n| minPoint  | Point(x=10, y=10) |             |\n| maxPoint  | Point(x=60, y=60) |             |\n\n### Early Termination\n\n\n| Parameter                | Default Value | Description                                                                                                               |\n|--------------------------|---------------|---------------------------------------------------------------------------------------------------------------------------|\n| minimumTotalDisplacement | 10            |                                                                                                                           |\n| stopCount                | 15            | Stop execution after this many number of iterations where the `totalDisplacement` is less that `minimumTotalDisplacement` |\n\n## Developer Notes\n\nThis project uses [buildlackey](https://github.com/hasii2011/buildlackey) for day-to-day development builds\n\n___\n\n# Note\nFor all kinds of problems, requests, enhancements, bug reports, etc., drop me an e-mail.\nWritten by <a href=\"mailto:email@humberto.a.sanchez.ii@gmail.com?subject=Hello Humberto\">Humberto A. Sanchez II</a>  (C) 2024\n\n\n\n![Humberto's Modified Logo](https://raw.githubusercontent.com/wiki/hasii2011/gittodoistclone/images/SillyGitHub.png)\n\nI am concerned about GitHub's Copilot project.\n\n\nI urge you to read about the\n[Give up GitHub](https://GiveUpGitHub.org) campaign from\n[the Software Freedom Conservancy](https://sfconservancy.org).\n\nWhile I do not advocate for all the issues listed there, I do not like that\na company like Microsoft may profit from open source projects.\n\nI continue to use GitHub because it offers the services I need for free.  But I continue\nto monitor their terms of service.\n\nAny use of this project's code by GitHub Copilot, past or present, is done\nwithout my permission.  I do not consent to GitHub's use of this project's\ncode in Copilot.\n",
    "bugtrack_url": null,
    "license": "GNU AFFERO GENERAL PUBLIC LICENSE",
    "summary": "Python Implementation of a Force Directed Layout Algorithm",
    "version": "0.80.2",
    "project_urls": {
        "Repository": "https://github.com/py-force-directed-layout"
    },
    "split_keywords": [
        "layout",
        "diagram",
        "python"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "50d6904c801ba279a80bdaf0bf49e29068eefda366f302b5f510e9cf61ca721b",
                "md5": "627027f3d005ad5623ce3240a7c6c209",
                "sha256": "d2875fe5978100b4fad6af7268b1cef0cd7124e5f0040615b9320efe116c8fc4"
            },
            "downloads": -1,
            "filename": "pyforcedirectedlayout-0.80.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "627027f3d005ad5623ce3240a7c6c209",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 26741,
            "upload_time": "2024-03-12T23:25:20",
            "upload_time_iso_8601": "2024-03-12T23:25:20.522443Z",
            "url": "https://files.pythonhosted.org/packages/50/d6/904c801ba279a80bdaf0bf49e29068eefda366f302b5f510e9cf61ca721b/pyforcedirectedlayout-0.80.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "36930de76a97f6e047956969c7b458b39f46cf7a0140147abfdd0ca7453b125e",
                "md5": "9757f14f33664539ded384223f614f14",
                "sha256": "d4ade2b94d58b313ae919b4f6734ed4b1ea692d4b923987f9c738ddace0e7865"
            },
            "downloads": -1,
            "filename": "pyforcedirectedlayout-0.80.2.tar.gz",
            "has_sig": false,
            "md5_digest": "9757f14f33664539ded384223f614f14",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 25280,
            "upload_time": "2024-03-12T23:25:22",
            "upload_time_iso_8601": "2024-03-12T23:25:22.075248Z",
            "url": "https://files.pythonhosted.org/packages/36/93/0de76a97f6e047956969c7b458b39f46cf7a0140147abfdd0ca7453b125e/pyforcedirectedlayout-0.80.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-12 23:25:22",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "pyforcedirectedlayout"
}
        
Elapsed time: 0.22451s