Skip to main content

A package for generating source-target pair and node map from pandas DataFrames for Sankey flow diagrams

Project description

Irene-Sankey

Irene-Sankey is a Python library that enables the creation of customizable and informative source-target pair to create Sankey diagrams. It is designed to be intuitive for both beginners and experts, with flexible options for styling, data input, and configuration, making it easy to represent complex flows visually.

Python PyPI Latest Release PyPI Downloads GitHub License: MIT

Table of Contents

Overview

Irene-Sankey offers an easy-to-use interface for creating Sankey diagrams, which are ideal for visualizing flow distributions across different categories or entities. The package is built to work seamlessly with pandas data structures and provides a range of customization options for colors, labels, and node arrangements, making it perfect for data analysts, data scientists, and anyone interested in visualizing complex flows.

Features

  • Simple Sankey Diagrams: Easily create source-target pair and customize Sankey diagrams from pandas DataFrames.
  • Customizable Styles: Customize colors, labels, node spacing, and flow thickness to suit your needs.
  • Support for Large Diagrams: Efficiently handles larger flows and multiple nodes.
  • Integrates with Pandas: Easily map columns and rows from pandas DataFrames to nodes and links.

Installation

Install Irene-Sankey using pip:

pip install irene_sankey

Note: Requires Python 3.8 or above.

Quick Start

Here’s a quick example to create a simple Sankey diagram with Irene-Sankey.

import pandas as pd
from irene_sankey.core.traverse import traverse_sankey_flow
from irene_sankey.plots.sankey import plot_irene_sankey_diagram

# Sample data to test the functionality
df = pd.DataFrame(
    {
        "country": ["NL","NL","NL","DE","DE","FR","FR","FR","US","US","US"],
        "industry": [
            "Technology","Finance","Healthcare",
            "Automotive","Engineering",
            "Technology","Agriculture","Healthcare",
            "Manufacturing","Technology","Finance"],
        "field": [
            "Software","Banking","Pharmaceuticals",
            "Car Manufacturing","Mechanical Engineering",
            "Software","Crop Science","Medical Devices",
            "Electronics","AI & Robotics","Investment Banking"],
    }
)

# Generate source-target pair, node map and link for Sankey diagrams
flow_df, node_map, link = traverse_sankey_flow(df, ["", "country", "industry", "field"])

# Plot Sankey diagram 
fig = plot_irene_sankey_diagram(node_map, link, title = "Irene-Sankey Demo", node_config={
        "pad": 10,
        "line": dict(color="black", width=1),
    }
)
fig.show()

Usage

The core function in the Irene-Sankey package is traverse_sankey_flow. By passing a pandas DataFrame and selecting string columns in the order of the flow, you can quickly generate a required source-targer pair map to generate Sankey diagram.

Contribution

We welcome contributions! To contribute:

  1. Fork the repository.
  2. Create a branch (git checkout -b feature/NewFeature).
  3. Commit your changes (git commit -m 'Add NewFeature').
  4. Push to the branch (git push origin feature/NewFeature).
  5. Open a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

I would like to express my heartfelt gratitude to everyone who contributed their knowledge and support, making this project possible. Special thanks to Mike Bostock and Yan Holtz for their invaluable inspiration and insights, which profoundly influenced the direction and development of this project. Their expertise and knowledge were instrumental in shaping its final form. I am also grateful to the Plotly team for their incredible library, enabling the creation of beautiful, interactive visualizations that bring the data to life.

Special thanks to the contributors and the open-source community for their support and feedback. The Sankey visualization method is inspired by Matplotlib's Sankey capabilities, with enhancements for customization and usability.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

irene_sankey-1.0.0.tar.gz (12.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

irene_sankey-1.0.0-py3-none-any.whl (13.6 kB view details)

Uploaded Python 3

File details

Details for the file irene_sankey-1.0.0.tar.gz.

File metadata

  • Download URL: irene_sankey-1.0.0.tar.gz
  • Upload date:
  • Size: 12.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for irene_sankey-1.0.0.tar.gz
Algorithm Hash digest
SHA256 90d28d39358c61b85187ef13bc8e84a922917635a9cf703597e60972acd11d10
MD5 870c702efd27a267e3f7d6ce2fe80a5d
BLAKE2b-256 1cfea9dc6e3f58189b2c3d6c2a482489b08d802cacff0aa2eac3c93587e64bec

See more details on using hashes here.

File details

Details for the file irene_sankey-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: irene_sankey-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 13.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for irene_sankey-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7cf7121340f9cf2a950605cf74cb7c96b17b81858aef91a5b3c772c835c3f140
MD5 67cfbde9f826d4136be4044f2198fa31
BLAKE2b-256 f4e7b44503c5632852209102b4271a14706cb88968736b418f6e6853a039d2ac

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page