fillwise


Namefillwise JSON
Version 1.0.1 PyPI version JSON
download
home_pageNone
SummaryVisualize group data by filling images with color proportions.
upload_time2025-07-24 01:31:06
maintainerNone
docs_urlNone
authorJuncel
requires_pythonNone
licenseMIT License Copyright (c) 2025 Juncel Datinggaling Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords image manipulation data visualization group comparison visual encoding charting library visual storytelling custom chart mask fill data art python
VCS
bugtrack_url
requirements numpy Pillow pandas
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![Test Fillwise on macOS, Linux, and Windows](https://github.com/j-ncel/Fillwise/actions/workflows/test.yml/badge.svg)
![PyPI](https://img.shields.io/pypi/v/Fillwise)
![Python](https://img.shields.io/pypi/pyversions/Fillwise)
![License](https://img.shields.io/github/license/j-ncel/Fillwise)

# Fillwise <img src="https://raw.githubusercontent.com/j-ncel/Fillwise/refs/heads/main/assets/icon.png" width="50" alt="Fillwise Icon">

**Visualize group data by filling images with color proportions.**

Fillwise is a Python module for visualizing group data by filling images with color proportions. It can be used for custom charts, data art, and creative data storytelling.

---

<a href="https://coff.ee/jncel">
  <img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" width="140" height="" alt="Buy Me a Coffee">
</a>

## Usage

```bash
pip install fillwise
```

```python
import pandas as pd
from fillwise import Fillwise

# Sample data
df = pd.DataFrame({
    "Fruits": ["Apple", "Banana", "Cherry"],
    "Counts": [20, 35, 45]
})

# Usage of Fillwise
fw = Fillwise(df, mask_path="cart.png", fill_style="horizontal")

# Save
fw.save("output.png")

# Display using system default image viewer
fw.show()
```

| Before                                                                                                                                    | After                                                                                                                                           |
| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| <img src="https://raw.githubusercontent.com/j-ncel/Fillwise/refs/heads/main/playground/samples/images/cart.png" width="250" alt="Before"> | <img src="https://raw.githubusercontent.com/j-ncel/Fillwise/refs/heads/main/playground/samples/images/cart_output.png" width="250" alt="After"> |

_Sample image credit from [UXWing](https://uxwing.com/cart-black-icon/)_.
_The data presented here are made-up only._

## Fillwise Output with Matplotlib

```python
# Usage of Fillwise
fw = Fillwise(df, image_path=image_path, fill_style="radial")
image = fw.render()

# Sample Plotting
fig, ax = plt.subplots()
ax.imshow(image)
ax.axis("off")

patches = [mpatches.Patch(color=color, label=label)
           for color, label in zip(fw.colors, fw.labels)]
ax.set_title("Game Genre Preferences",
             fontweight='bold', fontsize=16)
ax.legend(handles=patches, loc="center left", bbox_to_anchor=(1, 0.5),
          frameon=True)

plt.tight_layout()
plt.show()
```

<img src="https://raw.githubusercontent.com/j-ncel/Fillwise/refs/heads/main/playground/samples/images/gamepad_output.png" width="500" alt="Matplotlib Sample">

_Sample image credit from [UXWing](https://uxwing.com/gamepad-icon/)_.
_The data presented here are made-up only._

## Fill Styles

Fillwise supports multiple fill styles to suit different image shapes and storytelling needs:

| Style        | Description                   | Best For               |
| ------------ | ----------------------------- | ---------------------- |
| `horizontal` | Fills left to right           | Wide images like carts |
| `vertical`   | Fills top to bottom           | Tall silhouettes       |
| `radial`     | Fills outward from the center | Symmetrical shapes     |

You can switch styles by setting `fill_style="..."` when creating a Fillwise instance.

## Image Masks

You can use any transparent PNG image as a mask. Fillwise fills only the visible (non-transparent) pixels.

```python
fw = Fillwise(df, image_path="your_mask.png", fill_style="horizontal")
```

---

## License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.

## Attribution

Images used in examples are credited to [UXWing](https://uxwing.com).

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "fillwise",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "image manipulation, data visualization, group comparison, visual encoding, charting library, visual storytelling, custom chart, mask fill, data art, python",
    "author": "Juncel",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/c9/c0/7599a6f3a24e4ef8d7610a719138368a55f93d6fbda8b2fd887f202429fe/fillwise-1.0.1.tar.gz",
    "platform": null,
    "description": "![Test Fillwise on macOS, Linux, and Windows](https://github.com/j-ncel/Fillwise/actions/workflows/test.yml/badge.svg)\r\n![PyPI](https://img.shields.io/pypi/v/Fillwise)\r\n![Python](https://img.shields.io/pypi/pyversions/Fillwise)\r\n![License](https://img.shields.io/github/license/j-ncel/Fillwise)\r\n\r\n# Fillwise <img src=\"https://raw.githubusercontent.com/j-ncel/Fillwise/refs/heads/main/assets/icon.png\" width=\"50\" alt=\"Fillwise Icon\">\r\n\r\n**Visualize group data by filling images with color proportions.**\r\n\r\nFillwise is a Python module for visualizing group data by filling images with color proportions. It can be used for custom charts, data art, and creative data storytelling.\r\n\r\n---\r\n\r\n<a href=\"https://coff.ee/jncel\">\r\n  <img src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\" width=\"140\" height=\"\" alt=\"Buy Me a Coffee\">\r\n</a>\r\n\r\n## Usage\r\n\r\n```bash\r\npip install fillwise\r\n```\r\n\r\n```python\r\nimport pandas as pd\r\nfrom fillwise import Fillwise\r\n\r\n# Sample data\r\ndf = pd.DataFrame({\r\n    \"Fruits\": [\"Apple\", \"Banana\", \"Cherry\"],\r\n    \"Counts\": [20, 35, 45]\r\n})\r\n\r\n# Usage of Fillwise\r\nfw = Fillwise(df, mask_path=\"cart.png\", fill_style=\"horizontal\")\r\n\r\n# Save\r\nfw.save(\"output.png\")\r\n\r\n# Display using system default image viewer\r\nfw.show()\r\n```\r\n\r\n| Before                                                                                                                                    | After                                                                                                                                           |\r\n| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |\r\n| <img src=\"https://raw.githubusercontent.com/j-ncel/Fillwise/refs/heads/main/playground/samples/images/cart.png\" width=\"250\" alt=\"Before\"> | <img src=\"https://raw.githubusercontent.com/j-ncel/Fillwise/refs/heads/main/playground/samples/images/cart_output.png\" width=\"250\" alt=\"After\"> |\r\n\r\n_Sample image credit from [UXWing](https://uxwing.com/cart-black-icon/)_.\r\n_The data presented here are made-up only._\r\n\r\n## Fillwise Output with Matplotlib\r\n\r\n```python\r\n# Usage of Fillwise\r\nfw = Fillwise(df, image_path=image_path, fill_style=\"radial\")\r\nimage = fw.render()\r\n\r\n# Sample Plotting\r\nfig, ax = plt.subplots()\r\nax.imshow(image)\r\nax.axis(\"off\")\r\n\r\npatches = [mpatches.Patch(color=color, label=label)\r\n           for color, label in zip(fw.colors, fw.labels)]\r\nax.set_title(\"Game Genre Preferences\",\r\n             fontweight='bold', fontsize=16)\r\nax.legend(handles=patches, loc=\"center left\", bbox_to_anchor=(1, 0.5),\r\n          frameon=True)\r\n\r\nplt.tight_layout()\r\nplt.show()\r\n```\r\n\r\n<img src=\"https://raw.githubusercontent.com/j-ncel/Fillwise/refs/heads/main/playground/samples/images/gamepad_output.png\" width=\"500\" alt=\"Matplotlib Sample\">\r\n\r\n_Sample image credit from [UXWing](https://uxwing.com/gamepad-icon/)_.\r\n_The data presented here are made-up only._\r\n\r\n## Fill Styles\r\n\r\nFillwise supports multiple fill styles to suit different image shapes and storytelling needs:\r\n\r\n| Style        | Description                   | Best For               |\r\n| ------------ | ----------------------------- | ---------------------- |\r\n| `horizontal` | Fills left to right           | Wide images like carts |\r\n| `vertical`   | Fills top to bottom           | Tall silhouettes       |\r\n| `radial`     | Fills outward from the center | Symmetrical shapes     |\r\n\r\nYou can switch styles by setting `fill_style=\"...\"` when creating a Fillwise instance.\r\n\r\n## Image Masks\r\n\r\nYou can use any transparent PNG image as a mask. Fillwise fills only the visible (non-transparent) pixels.\r\n\r\n```python\r\nfw = Fillwise(df, image_path=\"your_mask.png\", fill_style=\"horizontal\")\r\n```\r\n\r\n---\r\n\r\n## License\r\n\r\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\r\n\r\n## Attribution\r\n\r\nImages used in examples are credited to [UXWing](https://uxwing.com).\r\n",
    "bugtrack_url": null,
    "license": "MIT License\r\n        \r\n        Copyright (c) 2025 Juncel Datinggaling\r\n        \r\n        Permission is hereby granted, free of charge, to any person obtaining a copy\r\n        of this software and associated documentation files (the \"Software\"), to deal\r\n        in the Software without restriction, including without limitation the rights\r\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n        copies of the Software, and to permit persons to whom the Software is\r\n        furnished to do so, subject to the following conditions:\r\n        \r\n        The above copyright notice and this permission notice shall be included in all\r\n        copies or substantial portions of the Software.\r\n        \r\n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n        SOFTWARE.",
    "summary": "Visualize group data by filling images with color proportions.",
    "version": "1.0.1",
    "project_urls": {
        "Homepage": "https://github.com/j-ncel/Fillwise",
        "Repository": "https://github.com/j-ncel/Fillwise"
    },
    "split_keywords": [
        "image manipulation",
        " data visualization",
        " group comparison",
        " visual encoding",
        " charting library",
        " visual storytelling",
        " custom chart",
        " mask fill",
        " data art",
        " python"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4bf3c1fa12f589b4f2f41d7d29b69424658602cc60dec58be3007593f6d4491f",
                "md5": "df1e66fb6323620a82ebbf7c984260b9",
                "sha256": "2452175bfc2c0acd9f8f78bd3d69e166c40abb0d381c8ff337cff6bce3659229"
            },
            "downloads": -1,
            "filename": "fillwise-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "df1e66fb6323620a82ebbf7c984260b9",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 8080,
            "upload_time": "2025-07-24T01:31:04",
            "upload_time_iso_8601": "2025-07-24T01:31:04.880208Z",
            "url": "https://files.pythonhosted.org/packages/4b/f3/c1fa12f589b4f2f41d7d29b69424658602cc60dec58be3007593f6d4491f/fillwise-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c9c07599a6f3a24e4ef8d7610a719138368a55f93d6fbda8b2fd887f202429fe",
                "md5": "fe6b6db0a6067d1329e98d8e47e34a96",
                "sha256": "5f6383381a1d220b26ce74b9600a620f6389b457d509eb962ee6bcd83771fb7c"
            },
            "downloads": -1,
            "filename": "fillwise-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "fe6b6db0a6067d1329e98d8e47e34a96",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 8366,
            "upload_time": "2025-07-24T01:31:06",
            "upload_time_iso_8601": "2025-07-24T01:31:06.440054Z",
            "url": "https://files.pythonhosted.org/packages/c9/c0/7599a6f3a24e4ef8d7610a719138368a55f93d6fbda8b2fd887f202429fe/fillwise-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-24 01:31:06",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "j-ncel",
    "github_project": "Fillwise",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "numpy",
            "specs": []
        },
        {
            "name": "Pillow",
            "specs": []
        },
        {
            "name": "pandas",
            "specs": []
        }
    ],
    "lcname": "fillwise"
}
        
Elapsed time: 1.49230s