pycatflow


Namepycatflow JSON
Version 0.1.2 PyPI version JSON
download
home_pagehttps://github.com/bumatic/PyCatFlow
SummaryA tool for visualizing categorical data over time.
upload_time2024-05-23 20:05:36
maintainerNone
docs_urlNone
authorMarcus Burkhardt
requires_python>=3.6
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5531785.svg)](https://doi.org/10.5281/zenodo.5531785)

# PyCatFlow

This package is a visualization tool which allows the representation of temporal developments, based on categorical data. I wrote a short [article on Medium](https://medium.com/@bumatic/pycatflow-visualizing-categorical-data-over-time-b344102bcce2) in which I outline the basic idea of PyCatFlow and provide a Tutorial for non-programmers based on a [Jupyter Notebook with interactive widgets that can be run online](https://mybinder.org/v2/gist/bumatic/83c3423595cde010da7ad059c6b8b2f5/HEAD).

## Install 

PyCatFlow is available on PyPi:

```Shell
$ pip3 install pycatflow
```
Alternatively you can download the repository and install the package by running 
the setup.py install routine. Make sure to install the requirements as well:

```python
pip3 install -r requirements.txt
python3 setup.py install
```

**Additional Requirements:** 
The visualization and export is based on the [drawSvg](https://pypi.org/project/drawSvg/) package that 
in turn requires cairo to be installed as an external requirement. Platform-specific instructions for installing cairo are available on the 
[cairo homepage](https://www.cairographics.org/download/).

On macOS cairo can be installed easily using [homebrew](https://brew.sh/):

```Bash
$ brew install cairo
```

## Basic usage

The visualization library provides many functionalities for adjusting the visual output. A simple use case is however as follows:

```Python
import pycatflow as pcf

# Loading and parsing data:
data = pcf.read_file("sample_data_ChatterBot_Requirements.csv", columns="column", nodes="items", categories="category", column_order="column order")

# Generating the visualization
viz = pcf.visualize(data, spacing=20, width=800, maxValue=20, minValue=2)
viz.savePng('sample_viz.png')
viz.saveSvg('sample_viz.svg')
viz
```

The code and sample data are provided in the example folder. The data contains 
annual snapshots of requirements of the [ChatterBots framework](https://github.com/gunthercox/ChatterBot) 
developed and maintained by Gunther Cox.

Running the above code creates this visualization:

![Sample Visualization](https://raw.githubusercontent.com/bumatic/PyCatFlow/main/example/sample_viz.svg)


## Credits & License

PyCatFlow was conceptualized by Marcus Burkhardt and implemented in collaboration with Herbert Natta ([@herbertmn](https://github.com/herbertmn)). It is inspired by the Rankflow visualization tool develped by Bernhard Rieder. 

**Cite as:** Marcus Burkhardt, and Herbert Natta. 2021. “PyCatFlow: A Python Package for Visualizing Categorical Data over Time”. Zenodo. https://doi.org/10.5281/zenodo.5531785.

The package is released under MIT License.



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/bumatic/PyCatFlow",
    "name": "pycatflow",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": null,
    "author": "Marcus Burkhardt",
    "author_email": "marcus.burkhardt@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/8b/eb/b8a16b28dc35763fb6e5d20e295c3414d57c150f50d96d44c2f58e952820/pycatflow-0.1.2.tar.gz",
    "platform": null,
    "description": "[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5531785.svg)](https://doi.org/10.5281/zenodo.5531785)\n\n# PyCatFlow\n\nThis package is a visualization tool which allows the representation of temporal developments, based on categorical data. I wrote a short [article on Medium](https://medium.com/@bumatic/pycatflow-visualizing-categorical-data-over-time-b344102bcce2) in which I outline the basic idea of PyCatFlow and provide a Tutorial for non-programmers based on a [Jupyter Notebook with interactive widgets that can be run online](https://mybinder.org/v2/gist/bumatic/83c3423595cde010da7ad059c6b8b2f5/HEAD).\n\n## Install \n\nPyCatFlow is available on PyPi:\n\n```Shell\n$ pip3 install pycatflow\n```\nAlternatively you can download the repository and install the package by running \nthe setup.py install routine. Make sure to install the requirements as well:\n\n```python\npip3 install -r requirements.txt\npython3 setup.py install\n```\n\n**Additional Requirements:** \nThe visualization and export is based on the [drawSvg](https://pypi.org/project/drawSvg/) package that \nin turn requires cairo to be installed as an external requirement. Platform-specific instructions for installing cairo are available on the \n[cairo homepage](https://www.cairographics.org/download/).\n\nOn macOS cairo can be installed easily using [homebrew](https://brew.sh/):\n\n```Bash\n$ brew install cairo\n```\n\n## Basic usage\n\nThe visualization library provides many functionalities for adjusting the visual output. A simple use case is however as follows:\n\n```Python\nimport pycatflow as pcf\n\n# Loading and parsing data:\ndata = pcf.read_file(\"sample_data_ChatterBot_Requirements.csv\", columns=\"column\", nodes=\"items\", categories=\"category\", column_order=\"column order\")\n\n# Generating the visualization\nviz = pcf.visualize(data, spacing=20, width=800, maxValue=20, minValue=2)\nviz.savePng('sample_viz.png')\nviz.saveSvg('sample_viz.svg')\nviz\n```\n\nThe code and sample data are provided in the example folder. The data contains \nannual snapshots of requirements of the [ChatterBots framework](https://github.com/gunthercox/ChatterBot) \ndeveloped and maintained by Gunther Cox.\n\nRunning the above code creates this visualization:\n\n![Sample Visualization](https://raw.githubusercontent.com/bumatic/PyCatFlow/main/example/sample_viz.svg)\n\n\n## Credits & License\n\nPyCatFlow was conceptualized by Marcus Burkhardt and implemented in collaboration with Herbert Natta ([@herbertmn](https://github.com/herbertmn)). It is inspired by the Rankflow visualization tool develped by Bernhard Rieder. \n\n**Cite as:** Marcus Burkhardt, and Herbert Natta. 2021. \u201cPyCatFlow: A Python Package for Visualizing Categorical Data over Time\u201d. Zenodo. https://doi.org/10.5281/zenodo.5531785.\n\nThe package is released under MIT License.\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A tool for visualizing categorical data over time.",
    "version": "0.1.2",
    "project_urls": {
        "Homepage": "https://github.com/bumatic/PyCatFlow"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "82dd28b11cdc408471f12bcec2bc4ba71dae245c2bf1bb8799951bab2454e57a",
                "md5": "ba281afa245f358eddb1309e00c2f7bf",
                "sha256": "25f58b9ba3fe086411a8c1720a68e74b7ada3ed5debdbe605b8953a96fbc34d7"
            },
            "downloads": -1,
            "filename": "pycatflow-0.1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ba281afa245f358eddb1309e00c2f7bf",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 11128,
            "upload_time": "2024-05-23T20:05:28",
            "upload_time_iso_8601": "2024-05-23T20:05:28.436580Z",
            "url": "https://files.pythonhosted.org/packages/82/dd/28b11cdc408471f12bcec2bc4ba71dae245c2bf1bb8799951bab2454e57a/pycatflow-0.1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8bebb8a16b28dc35763fb6e5d20e295c3414d57c150f50d96d44c2f58e952820",
                "md5": "f3d99b62677125c40b19e7ce0acb723c",
                "sha256": "3ef8d3abbd7857fad298c22a2b9f11a2fa4ac7a9250f993eeab2da349cfb60e7"
            },
            "downloads": -1,
            "filename": "pycatflow-0.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "f3d99b62677125c40b19e7ce0acb723c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 12343,
            "upload_time": "2024-05-23T20:05:36",
            "upload_time_iso_8601": "2024-05-23T20:05:36.222391Z",
            "url": "https://files.pythonhosted.org/packages/8b/eb/b8a16b28dc35763fb6e5d20e295c3414d57c150f50d96d44c2f58e952820/pycatflow-0.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-23 20:05:36",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "bumatic",
    "github_project": "PyCatFlow",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "pycatflow"
}
        
Elapsed time: 0.49492s