pyforcedirectedlayout


Namepyforcedirectedlayout JSON
Version 0.80.5 PyPI version JSON
download
home_pageNone
SummaryPython Implementation of a Force Directed Layout Algorithm
upload_time2024-10-29 01:09:48
maintainerNone
docs_urlNone
authorNone
requires_pythonNone
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": null,
    "name": "pyforcedirectedlayout",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": "\"Humberto A. Sanchez II\" <Humbert.A.Sanchez.II@gmail.com>",
    "keywords": "layout, diagram, python",
    "author": null,
    "author_email": "\"Humberto A. Sanchez II\" <Humbert.A.Sanchez.II@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/ae/06/39a2acbf3fe63baa5567f887f281a64e9d687856f6f7822f984071f299ac/pyforcedirectedlayout-0.80.5.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.5",
    "project_urls": {
        "Repository": "https://github.com/py-force-directed-layout"
    },
    "split_keywords": [
        "layout",
        " diagram",
        " python"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "89438cba378c17572cbd921c9778be0ccb5ca337b8fd3389f8b0029e9be1ac19",
                "md5": "09a47d6aff3f2e9cdc598e15ecae426c",
                "sha256": "958c88730f18460a4a179ecf7b7d3b12913a3bfc96a168b46bddf6d8d297e4a5"
            },
            "downloads": -1,
            "filename": "pyforcedirectedlayout-0.80.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "09a47d6aff3f2e9cdc598e15ecae426c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 26495,
            "upload_time": "2024-10-29T01:09:47",
            "upload_time_iso_8601": "2024-10-29T01:09:47.385117Z",
            "url": "https://files.pythonhosted.org/packages/89/43/8cba378c17572cbd921c9778be0ccb5ca337b8fd3389f8b0029e9be1ac19/pyforcedirectedlayout-0.80.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ae0639a2acbf3fe63baa5567f887f281a64e9d687856f6f7822f984071f299ac",
                "md5": "9353db8811cae402a73e9efcb1fa7157",
                "sha256": "dd59dbe3dbf120765666e1ed4ac26f78fd93fb2e7fc86174ac2ad5451793d1b3"
            },
            "downloads": -1,
            "filename": "pyforcedirectedlayout-0.80.5.tar.gz",
            "has_sig": false,
            "md5_digest": "9353db8811cae402a73e9efcb1fa7157",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 24969,
            "upload_time": "2024-10-29T01:09:48",
            "upload_time_iso_8601": "2024-10-29T01:09:48.432196Z",
            "url": "https://files.pythonhosted.org/packages/ae/06/39a2acbf3fe63baa5567f887f281a64e9d687856f6f7822f984071f299ac/pyforcedirectedlayout-0.80.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-29 01:09:48",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "pyforcedirectedlayout"
}
        
Elapsed time: 4.02571s