{ "info": { "author": "Luca Cappelletti", "author_email": "cappelletti.luca94@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3" ], "description": "ddd_subplots\n=========================================================================================\n|travis| |sonar_quality| |sonar_maintainability| |codacy| |code_climate_maintainability| |pip| |downloads|\n\nPython package making it easier to handle mixed 3d and 2d subplots.\n\nHow do I install this package?\n----------------------------------------------\nAs usual, just download it using pip:\n\n.. code:: shell\n\n pip install ddd_subplots\n\nTests Coverage\n----------------------------------------------\nSince some software handling coverages sometime get slightly different results, here's three of them:\n\n|coveralls| |sonar_coverage| |code_climate_coverage|\n\nUsage Example\n-----------------------------------------------\n\n3D subplots\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nTo get a set of 3d subplots just import `subplots`:\n\n.. code:: python\n\n from ddd_subplots import subplots\n\n fig, axes = subplots(1, 3, figsize=(15, 5))\n\n\nRotating 3D scatter plots\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nThe library also offers a method to render 3D scatter plots. Here's a complete example:\n\n.. code:: python\n\n from ddd_subplots import subplots, rotate\n import numpy as np\n from sklearn import datasets\n from sklearn.decomposition import PCA\n\n\n def my_func(xs: np.ndarray, ys: np.ndarray, zs: np.ndarray, *args, **kwargs):\n fig, axes = subplots(1, 3, figsize=(9, 3))\n axs = axes.flatten()\n axs[0].scatter(xs, ys, zs, **kwargs)\n axs[1].scatter(ys, zs, xs, **kwargs)\n axs[2].scatter(zs, xs, ys, **kwargs)\n fig.tight_layout()\n return fig, axes\n\n\n X, y = datasets.load_iris(return_X_y=True)\n X_reduced = PCA(n_components=3).fit_transform(X)\n colors = np.array([\"red\", \"green\", \"blue\"])[y]\n rotate(my_func, *X_reduced.T, path=\"test.gif\",\n duration=2, fps=24, c=colors, marker='o', s=20)\n\n\n\nOutput:\n\n.. image:: https://github.com/LucaCappelletti94/ddd_subplots/blob/master/test.gif?raw=true\n\n\nKnown limits\n----------------------------------------------\nThere is an error with `CoreFoundations and multiprocessing on MacOS `_, which states the following:\n\n.. code:: bash\n\n The process has forked and you cannot use this CoreFoundation functionality safely. You MUST exec().\n Break on __THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC__() to debug.\n\nThis is a weird known error of MacOS Sierra. For now, the only available solution is to disable multiprocessing when dealing with matplotlib.\nAny alternative valid solutions are welcome:\n\n.. code:: python\n\n rotate(my_func, *X_reduced.T, path=\"test.gif\",\n duration=2, fps=24, parallelize=False, c=colors, marker='o', s=20)\n\n.. |travis| image:: https://travis-ci.org/LucaCappelletti94/ddd_subplots.png\n :target: https://travis-ci.org/LucaCappelletti94/ddd_subplots\n :alt: Travis CI build\n\n.. |sonar_quality| image:: https://sonarcloud.io/api/project_badges/measure?project=LucaCappelletti94_ddd_subplots&metric=alert_status\n :target: https://sonarcloud.io/dashboard/index/LucaCappelletti94_ddd_subplots\n :alt: SonarCloud Quality\n\n.. |sonar_maintainability| image:: https://sonarcloud.io/api/project_badges/measure?project=LucaCappelletti94_ddd_subplots&metric=sqale_rating\n :target: https://sonarcloud.io/dashboard/index/LucaCappelletti94_ddd_subplots\n :alt: SonarCloud Maintainability\n\n.. |sonar_coverage| image:: https://sonarcloud.io/api/project_badges/measure?project=LucaCappelletti94_ddd_subplots&metric=coverage\n :target: https://sonarcloud.io/dashboard/index/LucaCappelletti94_ddd_subplots\n :alt: SonarCloud Coverage\n\n.. |coveralls| image:: https://coveralls.io/repos/github/LucaCappelletti94/ddd_subplots/badge.svg?branch=master\n :target: https://coveralls.io/github/LucaCappelletti94/ddd_subplots?branch=master\n :alt: Coveralls Coverage\n\n.. |pip| image:: https://badge.fury.io/py/ddd-subplots.svg\n :target: https://badge.fury.io/py/ddd-subplots\n :alt: Pypi project\n\n.. |downloads| image:: https://pepy.tech/badge/ddd-subplots\n :target: https://pepy.tech/badge/ddd-subplots\n :alt: Pypi total project downloads \n\n.. |codacy| image:: https://api.codacy.com/project/badge/Grade/07125d5f5f4d4d1a838349b004553cd4\n :target: https://www.codacy.com/manual/LucaCappelletti94/ddd_subplots?utm_source=github.com&utm_medium=referral&utm_content=LucaCappelletti94/ddd_subplots&utm_campaign=Badge_Grade\n :alt: Codacy Maintainability\n\n.. |code_climate_maintainability| image:: https://api.codeclimate.com/v1/badges/5c07f15635098d958e08/maintainability\n :target: https://codeclimate.com/github/LucaCappelletti94/ddd_subplots/maintainability\n :alt: Maintainability\n\n.. |code_climate_coverage| image:: https://api.codeclimate.com/v1/badges/5c07f15635098d958e08/test_coverage\n :target: https://codeclimate.com/github/LucaCappelletti94/ddd_subplots/test_coverage\n :alt: Code Climate Coverate", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/LucaCappelletti94/ddd_subplots", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "ddd-subplots", "package_url": "https://pypi.org/project/ddd-subplots/", "platform": "", "project_url": "https://pypi.org/project/ddd-subplots/", "project_urls": { "Homepage": "https://github.com/LucaCappelletti94/ddd_subplots" }, "release_url": "https://pypi.org/project/ddd-subplots/1.0.6/", "requires_dist": null, "requires_python": "", "summary": "Python package making it easier to handle mixed 3d and 2d subplots.", "version": "1.0.6" }, "last_serial": 5953514, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "212b434e794ab93f6b03526f2cdd95d9", "sha256": "66321f21fdcc47fcea0fcc016923a76d36d93398d0547200051e705b18555ba9" }, "downloads": -1, "filename": "ddd_subplots-1.0.0.tar.gz", "has_sig": false, "md5_digest": "212b434e794ab93f6b03526f2cdd95d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4025, "upload_time": "2019-10-09T16:26:06", "url": "https://files.pythonhosted.org/packages/b6/8d/31bbc25a8f11a5f3f51f3d03194f4f1944111341648d03ac4093871fbf6a/ddd_subplots-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "fcbff876a34e20c53894e1f938fd3589", "sha256": "3745c2e6e0e94b5ddae04ddf9a260671b9fe1d1fb068c934287b9e1c90105c9e" }, "downloads": -1, "filename": "ddd_subplots-1.0.1.tar.gz", "has_sig": false, "md5_digest": "fcbff876a34e20c53894e1f938fd3589", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4763, "upload_time": "2019-10-09T16:54:37", "url": "https://files.pythonhosted.org/packages/28/85/013216a401a4af10447dfac5b296073866963f4095460e961d568ffd680f/ddd_subplots-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "bb0fad04eb709f36388643b5a8b83b4e", "sha256": "c9bb47f29aa9ce2108e90eac7b2b57264034fe8f2482aa88c1e90fa771e9df55" }, "downloads": -1, "filename": "ddd_subplots-1.0.2.tar.gz", "has_sig": false, "md5_digest": "bb0fad04eb709f36388643b5a8b83b4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4924, "upload_time": "2019-10-10T06:28:01", "url": "https://files.pythonhosted.org/packages/51/77/c7e34e42328797c16cf54fb0dcee64e581cb80d925a9a301628d79ccea06/ddd_subplots-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "62e3d6c548ba6e9f18419f497e5daa5d", "sha256": "3cd9cb3094557750691e2bdbdfa1ec0bc22d91b3de0572fb8416c8975b4d4e53" }, "downloads": -1, "filename": "ddd_subplots-1.0.3.tar.gz", "has_sig": false, "md5_digest": "62e3d6c548ba6e9f18419f497e5daa5d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4879, "upload_time": "2019-10-10T06:45:35", "url": "https://files.pythonhosted.org/packages/35/a1/f65dda4ac691300988cff66e0bbe7f1dd09cb9816c885515468350143168/ddd_subplots-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "aa105dffbf1a49ca4522d833a10321fd", "sha256": "4f5d761c7a6aa5d27a67275168ebead5c9266df6c1df2a1c3040bfb2c07e4cd0" }, "downloads": -1, "filename": "ddd_subplots-1.0.4.tar.gz", "has_sig": false, "md5_digest": "aa105dffbf1a49ca4522d833a10321fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5413, "upload_time": "2019-10-10T07:16:20", "url": "https://files.pythonhosted.org/packages/02/1e/b65985eb4f5eb5f47240bbc5b88abab776eb857faf5bcf2cad39cef44929/ddd_subplots-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "1b37a45f6e6784db5bcdc6166130031f", "sha256": "2d37e046859eeec69d0c14f7a663a295f7e0d7498c592fc8d4eb63290fed7511" }, "downloads": -1, "filename": "ddd_subplots-1.0.5.tar.gz", "has_sig": false, "md5_digest": "1b37a45f6e6784db5bcdc6166130031f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5419, "upload_time": "2019-10-10T07:44:36", "url": "https://files.pythonhosted.org/packages/e9/1e/7760d0d2fbf7da9a44cf5018561735f8720dad7ed6bf5e277cd6122a2b1e/ddd_subplots-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "6c67701cf97afa8c442ad9ff1576ff60", "sha256": "9d0fc8097859649d4e90bed441089d3ba6cdbaebeedd4d631359502282f3493c" }, "downloads": -1, "filename": "ddd_subplots-1.0.6.tar.gz", "has_sig": false, "md5_digest": "6c67701cf97afa8c442ad9ff1576ff60", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5431, "upload_time": "2019-10-10T07:49:10", "url": "https://files.pythonhosted.org/packages/5a/fd/0daa6adf01a839c7c57d2305ea7b12bf4a97c8b4a6313a4796cd50db02b2/ddd_subplots-1.0.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6c67701cf97afa8c442ad9ff1576ff60", "sha256": "9d0fc8097859649d4e90bed441089d3ba6cdbaebeedd4d631359502282f3493c" }, "downloads": -1, "filename": "ddd_subplots-1.0.6.tar.gz", "has_sig": false, "md5_digest": "6c67701cf97afa8c442ad9ff1576ff60", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5431, "upload_time": "2019-10-10T07:49:10", "url": "https://files.pythonhosted.org/packages/5a/fd/0daa6adf01a839c7c57d2305ea7b12bf4a97c8b4a6313a4796cd50db02b2/ddd_subplots-1.0.6.tar.gz" } ] }