{ "info": { "author": "Naresh Nagabushan", "author_email": "nnaresh@vt.edu", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Science/Research", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.6" ], "description": "# Crystal\n\n
\n\n
\n\n
A realtime plotting and project management library built using Plotly
\n\n\n\n\n## What can it do?\n\nCrystal is an alternative to the amazingly useful visualization tool\n[Tensorboard](https://github.com/tensorflow/tensorboard) with some additional features that \nmake it useful not just for Machine Learning but, in any project that needs realtime data \nvisualizations. You can include realtime plots in your python (more languages to come) easily \nwith just two line of code.\n\nSome features provided by crystal include;\n* Centralized database to store the results of all projects.\n* Easy way to download results from the database if needed.\n* Plots supported include scalar, histogram and images with more to come.\n\n\nTo get started just install crystal using pip as follows:\n\n``` bash\n$ pip install crystal\n```\n\nThe installation adds a path to crystal script to `PATH` variable on linux which allows you to run\nthe crystal dashboard from any directory as follows:\n\n```bash\n$ crystal\n```\n\n\n**Note:** \n* If you install it on a virtual environment then you will only be able to run it only when\nthe environment is activated.\n\n\nHere's how you'd plot a sine wave using crystal:\n\n```python \n\"\"\"\nrealtime_sinewave.py\n\"\"\"\n\nimport time\nimport numpy as np\nfrom crystal import Crystal\n\ncr = Crystal(project_name=\"Realtime_sine\")\nx_range = np.arange(0, 1000, 0.1)\n\nfor i in x_range:\n value = np.sin(2*np.pi*i)\n cr.scalar(value=value, step=i, name=\"sine_wave\")\n print(\"step: {} \\t value: {}\".format(i, value))\n time.sleep(1) # one value a second\n\n```\n\nLet's have a closer look at some of the functions used in the above code:\n* `cr = Crystal(project_name=..)` creates a new project in the database, if no project\nname is provided then, the script name is used as the project name.\n* `cr.scalar(value=..)` plots a scalar value and takes three parameters,\n`value` stores the y-axis value which in this case is the sin output, `step` saves\nthe x-axis value and `name` provides a title for the plot.\n* Each run in a project is assigned a unique run id that contains the time stamp. \nYou can see them in the terminal and also the dashboard (described below).\n* All the data is stores under `~/Crystal_data/crystal.db`. \n\n**Output:**\n\nRun \n\n```bash\n$ crystal \n```\n\nand select a project and run name. You will see a plot that looks something like \nthis:\n\n\n\n
\n\n
Crystal Dashboard in action
\n\n\n\n## Where can I learn more?\n\nDocs are still being worked on. Feel free to contribute in documenting the usage!\n\n## Built With\n\n* [Plotly](https://plot.ly/javascript/) - Graphing library\n* [Flask](http://flask.pocoo.org/) - Microframework used to build the dashboard backend \n* [Material Design for Bootstrap](https://fezvrasta.github.io/bootstrap-material-design/) - Styling the dashboard\n\n## Contributing\n\nPlease read [CONTRIBUTING.md](https://gist.github.com/PurpleBooth/b24679402957c63ec426) for details on our code of conduct, and the process for submitting pull requests to us.\n\n## Versioning\n\nWe use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/Naresh1318/crystal/tags). \n\n## Authors\n\n* **Naresh Nagabushan** - *Initial work* - [naresh1318](https://github.com/Naresh1318)\n\nSee also the list of [contributors](https://github.com/Naresh1318/crystal/graphs/contributors) who participated in this project.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n\n## Acknowledgments\n\n* Inspired by [Tensorboard](https://www.tensorflow.org/programmers_guide/summaries_and_tensorboard)\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Naresh1318/crystal", "keywords": "plotting charts realtime", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "crystal", "package_url": "https://pypi.org/project/crystal/", "platform": "", "project_url": "https://pypi.org/project/crystal/", "project_urls": { "Homepage": "https://github.com/Naresh1318/crystal" }, "release_url": "https://pypi.org/project/crystal/0.1.0/", "requires_dist": [ "numpy", "Flask (==1.0.2)" ], "requires_python": ">=3", "summary": "A realtime plotting library built using plot.ly", "version": "0.1.0" }, "last_serial": 4019017, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "68346ab62dd76a5f9121c8d2c8dfe589", "sha256": "8314d65dd6efd840549d20daf937d5b94fb52bdd2aca46da8d5815e21d7d926e" }, "downloads": -1, "filename": "crystal-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "68346ab62dd76a5f9121c8d2c8dfe589", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 2127373, "upload_time": "2018-06-30T20:29:42", "url": "https://files.pythonhosted.org/packages/64/82/5fd3cf3681159ba0b40d64d3a95353f050be38073ddd07d39e7a4d4e9574/crystal-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6e007138f260a157c8974cfc4a0605b0", "sha256": "cf0a41928ce25fd7f15c5eac02611b440a3d32baca3fd780afac7b5eb2e62d7c" }, "downloads": -1, "filename": "crystal-0.1.0.tar.gz", "has_sig": false, "md5_digest": "6e007138f260a157c8974cfc4a0605b0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 2126219, "upload_time": "2018-06-30T20:29:46", "url": "https://files.pythonhosted.org/packages/79/ab/a685fd1603f0d04bda9ad9509a14bb388f53d947cd037ee929d3e1e4a674/crystal-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "68346ab62dd76a5f9121c8d2c8dfe589", "sha256": "8314d65dd6efd840549d20daf937d5b94fb52bdd2aca46da8d5815e21d7d926e" }, "downloads": -1, "filename": "crystal-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "68346ab62dd76a5f9121c8d2c8dfe589", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 2127373, "upload_time": "2018-06-30T20:29:42", "url": "https://files.pythonhosted.org/packages/64/82/5fd3cf3681159ba0b40d64d3a95353f050be38073ddd07d39e7a4d4e9574/crystal-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6e007138f260a157c8974cfc4a0605b0", "sha256": "cf0a41928ce25fd7f15c5eac02611b440a3d32baca3fd780afac7b5eb2e62d7c" }, "downloads": -1, "filename": "crystal-0.1.0.tar.gz", "has_sig": false, "md5_digest": "6e007138f260a157c8974cfc4a0605b0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 2126219, "upload_time": "2018-06-30T20:29:46", "url": "https://files.pythonhosted.org/packages/79/ab/a685fd1603f0d04bda9ad9509a14bb388f53d947cd037ee929d3e1e4a674/crystal-0.1.0.tar.gz" } ] }