Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save spidezad/1ce6bd4872f51d06b45b362c6d8dc5b1 to your computer and use it in GitHub Desktop.
Save spidezad/1ce6bd4872f51d06b45b362c6d8dc5b1 to your computer and use it in GitHub Desktop.
PercentStackPlot as Mosaic - example.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "import pandas as pd\nimport numpy as np\nimport os, sys, re, time, random\nimport matplotlib.pyplot as plt",
"execution_count": 1,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# Sample Data\nimport random\nr = [0,1,2,3,4]\nraw_data = {'g': random.sample(range(1,100),5), 'r': random.sample(range(1,100),5),'b': random.sample(range(1,100),5)}\ndf = pd.DataFrame(raw_data)\n\ndf.head()",
"execution_count": 2,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 2,
"data": {
"text/plain": " b g r\n0 48 32 4\n1 29 70 5\n2 39 94 16\n3 77 44 36\n4 99 19 87",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>b</th>\n <th>g</th>\n <th>r</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>48</td>\n <td>32</td>\n <td>4</td>\n </tr>\n <tr>\n <th>1</th>\n <td>29</td>\n <td>70</td>\n <td>5</td>\n </tr>\n <tr>\n <th>2</th>\n <td>39</td>\n <td>94</td>\n <td>16</td>\n </tr>\n <tr>\n <th>3</th>\n <td>77</td>\n <td>44</td>\n <td>36</td>\n </tr>\n <tr>\n <th>4</th>\n <td>99</td>\n <td>19</td>\n <td>87</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "def mosaicplot(df, color_list, x_label_suffix = None, figsize=(5,5), barwidth = 1,\n title = \"Simple Mosaic Plot\", xlabel = 'cat'):\n \"\"\" \n Create mosaic plot based on stacked bar charts.\n x axis will be taken from the dateframe index.\n the category will be based on all the columns. \n \n Args:\n df (dataframe): Dataframe object with index (x) and the columns as the categories.\n color_list (list): Color list for the different categories.\n x_label_suffix (str): additional string to added to x axis beside the df index.\n figsize (tuple): size of plots\n barwidth(int): width of bar (relative to 1)\n \"\"\"\n \n plt.figure(figsize =figsize)\n \n # Convert to ratio of each row sum and do a cumsum along row\n p_cnt_ratio_df = df.div(df.sum(1), axis =0)\n ratio_cum_df = p_cnt_ratio_df.cumsum(axis=1)\n \n # Get column order.\n col_order = ratio_cum_df.columns.tolist()\n \n if x_label_suffix is None:\n x_label_suffix = ''\n \n x = [x_label_suffix + str(n) for n in ratio_cum_df.index.tolist()]\n \n # Do the actual plots\n for col, colour in zip(col_order[::-1], color_list):\n plt.bar(x, ratio_cum_df[col], color=colour, edgecolor='white', width=barwidth, label=col)\n \n # Add in legend\n plt.legend(loc='upper left', bbox_to_anchor=(1,1), ncol=1)\n\n # Configure title and axis\n plt.title(title)\n plt.xlabel(xlabel)\n\n \n \ncolor_list = ['#f9bc86', '#b5ffb9', '#a3acff' ]\nmosaicplot(df, color_list, x_label_suffix = 'd', figsize=(5,5), barwidth = 1 )\nplt.title",
"execution_count": 3,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 3,
"data": {
"text/plain": "<function matplotlib.pyplot.title(s, *args, **kwargs)>"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 360x360 with 1 Axes>",
"image/png": "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\n"
},
"metadata": {}
}
]
}
],
"metadata": {
"kernelspec": {
"name": "python3",
"display_name": "Python 3",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.6.4",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
},
"gist": {
"id": "",
"data": {
"description": "PercentStackPlot as Mosaic - example.ipynb",
"public": true
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment