{ "info": { "author": "Eugene Bosiakov", "author_email": "eugenebosyakov@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Scientific/Engineering :: Mathematics" ], "description": "Force Atlas 2 Layout\n===========================\n\nForceAtlas2 is a continuous graph layout algorithm for handy network visualization.\n\nThis implementation is based on this `paper `_.\n\n**Warning:** Some features (especially *Prevent Overlapping*) are not completely implemented. I'm waiting for your pull-requests.\n\nExample of social graph rendered with force atlas 2 layout:\n\n.. image:: https://raw.githubusercontent.com/bosiakov/fa2l/master/_static/result.jpg\n\nInstalling\n----------\n\nSupports Python 3.3+\n\nInstall from pip:\n\n.. code-block:: bash\n\n pip install fa2l\n\n\nTo build and install run from source:\n\n.. code-block:: bash\n\n python setup.py install\n\nUsage\n-----\n\n.. code-block:: python\n\n import networkx as nx\n from fa2l import force_atlas2_layout\n import matplotlib.pyplot as plt\n\n G = nx.erdos_renyi_graph(100, 0.15, directed=False)\n\n positions = force_atlas2_layout(G,\n iterations=1000,\n pos_list=None,\n node_masses=None,\n outbound_attraction_distribution=False,\n lin_log_mode=False,\n prevent_overlapping=False,\n edge_weight_influence=1.0,\n\n jitter_tolerance=1.0,\n barnes_hut_optimize=True,\n barnes_hut_theta=0.5,\n\n scaling_ratio=2.0,\n strong_gravity_mode=False,\n multithread=False,\n gravity=1.0)\n\n nx.draw_networkx(G, positions, cmap=plt.get_cmap('jet'), node_size=50, with_labels=False)\n plt.show()\n\n\nFeatures\n--------\n\nForce Atlas 2 features these settings:\n\n- *Approximate Repulsion*: Barnes Hut optimization: n\u00b2 complexity to n.ln(n).\n- *Gravity*: Attracts nodes to the center. Prevents islands from drifting away.\n- *Dissuade Hubs*: Distributes attraction along outbound edges. Hubs attract less and thus are pushed to the borders.\n- *LinLog mode*: Switch ForceAtlas model from lin-lin to lin-log. Makes clusters more tight.\n- *Prevent Overlap*. WARNING! Does not work very well.\n- *Tolerance*: How much swinging you allow. Above 1 discouraged. Lower gives less speed and more precision.\n- *Edge Weight Influence*: How much influence you give to the edges weight. 0 is \"no influence\" and 1 is \"normal\".\n\nDocumentation\n-------------\n\nYou will find all the documentation in the source code\n\nCopyright\n---------\n\nCopyright Eugene Bosiakov. Licensed under the GNU GPLv3.\n\nThis files are based on the java files included in Gephi (Copyright 2011 Gephi Consortium).\n\nAlso thanks to Max Shinn.", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/bosiakov/fa2l", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "fa2l", "package_url": "https://pypi.org/project/fa2l/", "platform": "", "project_url": "https://pypi.org/project/fa2l/", "project_urls": { "Homepage": "https://github.com/bosiakov/fa2l" }, "release_url": "https://pypi.org/project/fa2l/0.2/", "requires_dist": null, "requires_python": "", "summary": "Force Atlas 2 graph layout", "version": "0.2" }, "last_serial": 3153670, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "1b7a8b5fd84142b080e34c8f970b7540", "sha256": "872bff5d7d261034b487ebd6a04bbe0144b0c427be7089647baced57a4fc8006" }, "downloads": -1, "filename": "fa2l-0.1-py3.5.egg", "has_sig": false, "md5_digest": "1b7a8b5fd84142b080e34c8f970b7540", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 18253, "upload_time": "2017-09-06T14:23:37", "url": "https://files.pythonhosted.org/packages/4c/00/e57c2e5b189732d1c18c294b58f49b6dd3aff2469234652412159e5ece75/fa2l-0.1-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "28e9b8b6c843b756c47d5a213a12bc4a", "sha256": "b7c5862faf744cd8a393bb03bf87b10f9c68c8e45f4f55632d142e668570bd3f" }, "downloads": -1, "filename": "fa2l-0.1.tar.gz", "has_sig": false, "md5_digest": "28e9b8b6c843b756c47d5a213a12bc4a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6760, "upload_time": "2017-08-17T15:28:20", "url": "https://files.pythonhosted.org/packages/b3/e9/481ea245809aafd040f5b0cbf235187461aa9369430f1ef8ff937d1ff81c/fa2l-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "25a8e526ba39a933e837a85962840dd2", "sha256": "21178bfdb7f01a1778de425982cc4fd499caead2a13b2b26e2174ad43e918ca8" }, "downloads": -1, "filename": "fa2l-0.2.tar.gz", "has_sig": false, "md5_digest": "25a8e526ba39a933e837a85962840dd2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7770, "upload_time": "2017-09-06T14:24:41", "url": "https://files.pythonhosted.org/packages/ca/5c/d2febc43886ab3991e4fd31e901253590360c53b1f648d216477d595558e/fa2l-0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "25a8e526ba39a933e837a85962840dd2", "sha256": "21178bfdb7f01a1778de425982cc4fd499caead2a13b2b26e2174ad43e918ca8" }, "downloads": -1, "filename": "fa2l-0.2.tar.gz", "has_sig": false, "md5_digest": "25a8e526ba39a933e837a85962840dd2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7770, "upload_time": "2017-09-06T14:24:41", "url": "https://files.pythonhosted.org/packages/ca/5c/d2febc43886ab3991e4fd31e901253590360c53b1f648d216477d595558e/fa2l-0.2.tar.gz" } ] }