Skip to content

Commit

Permalink
🎨 Supp. Fig. 5b,c - overlay bars with actual measurments
Browse files Browse the repository at this point in the history
  • Loading branch information
Henry committed Apr 11, 2024
1 parent a677cce commit 59c8ddb
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 32 deletions.
48 changes: 33 additions & 15 deletions project/03_1_best_models_comparison.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,18 @@
"metadata": {},
"outputs": [],
"source": [
"import logging\n",
"from pathlib import Path\n",
"import pandas as pd\n",
"\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"import seaborn as sns\n",
"\n",
"import vaep.pandas\n",
"import vaep.nb\n",
"\n",
"import logging\n",
"import vaep.pandas\n",
"import vaep.plotting\n",
"from vaep.logging import setup_logger\n",
"\n",
"logger = setup_logger(logger=logging.getLogger('vaep'), level=10)\n",
"\n",
"plt.rcParams['figure.figsize'] = [4.0, 2.0]\n",
Expand Down Expand Up @@ -164,16 +164,34 @@
"metadata": {},
"outputs": [],
"source": [
"ax = sns.barplot(x='data level',\n",
" y='MAE',\n",
" hue='model',\n",
" order=IDX[0],\n",
" palette=vaep.plotting.defaults.color_model_mapping,\n",
" ci=95,\n",
" errwidth=1.5,\n",
" data=view_long)\n",
"ax.set_xlabel('')\n",
"fig = ax.get_figure()"
"# individual points overlaid on bar plot:\n",
"# seaborn 12.2\n",
"# https://stackoverflow.com/a/69398767/9684872\n",
"sns.set_theme(context='paper', ) # font_scale=.8)\n",
"sns.set_style(\"whitegrid\")\n",
"g = sns.catplot(x=\"data level\", y=\"MAE\", hue='model', data=view_long,\n",
" kind=\"bar\",\n",
" errorbar=\"ci\", # ! 95% confidence interval bootstrapped (using 1000 draws by default)\n",
" edgecolor=\"black\",\n",
" errcolor=\"black\",\n",
" hue_order=IDX[1],\n",
" order=IDX[0],\n",
" palette=vaep.plotting.defaults.color_model_mapping,\n",
" alpha=0.9,\n",
" height=2, # set the height of the figure\n",
" aspect=1.8 # set the aspect ratio of the figure\n",
" )\n",
"\n",
"# map data to stripplot\n",
"g.map(sns.stripplot, 'data level', 'MAE', 'model',\n",
" hue_order=IDX[1], order=IDX[0],\n",
" palette=vaep.plotting.defaults.color_model_mapping,\n",
" dodge=True, alpha=1, ec='k', linewidth=1,\n",
" s=2)\n",
"\n",
"fig = g.figure\n",
"ax = fig.get_axes()[0]\n",
"_ = ax.set_xlabel('')"
]
},
{
Expand All @@ -182,7 +200,7 @@
"metadata": {},
"outputs": [],
"source": [
"vaep.savefig(fig, FOLDER / \"model_performance_repeated_runs.pdf\")"
"vaep.savefig(fig, FOLDER / \"model_performance_repeated_runs.pdf\", tight_layout=False)"
]
},
{
Expand Down
48 changes: 33 additions & 15 deletions project/03_1_best_models_comparison.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,18 @@
# ---

# %%
import logging
from pathlib import Path
import pandas as pd

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

import vaep.pandas
import vaep.nb

import logging
import vaep.pandas
import vaep.plotting
from vaep.logging import setup_logger

logger = setup_logger(logger=logging.getLogger('vaep'), level=10)

plt.rcParams['figure.figsize'] = [4.0, 2.0]
Expand Down Expand Up @@ -102,19 +102,37 @@
view_long

# %%
ax = sns.barplot(x='data level',
y='MAE',
hue='model',
order=IDX[0],
palette=vaep.plotting.defaults.color_model_mapping,
ci=95,
errwidth=1.5,
data=view_long)
ax.set_xlabel('')
fig = ax.get_figure()
# individual points overlaid on bar plot:
# seaborn 12.2
# https://stackoverflow.com/a/69398767/9684872
sns.set_theme(context='paper', ) # font_scale=.8)
sns.set_style("whitegrid")
g = sns.catplot(x="data level", y="MAE", hue='model', data=view_long,
kind="bar",
errorbar="ci", # ! 95% confidence interval bootstrapped (using 1000 draws by default)
edgecolor="black",
errcolor="black",
hue_order=IDX[1],
order=IDX[0],
palette=vaep.plotting.defaults.color_model_mapping,
alpha=0.9,
height=2, # set the height of the figure
aspect=1.8 # set the aspect ratio of the figure
)

# map data to stripplot
g.map(sns.stripplot, 'data level', 'MAE', 'model',
hue_order=IDX[1], order=IDX[0],
palette=vaep.plotting.defaults.color_model_mapping,
dodge=True, alpha=1, ec='k', linewidth=1,
s=2)

fig = g.figure
ax = fig.get_axes()[0]
_ = ax.set_xlabel('')

# %%
vaep.savefig(fig, FOLDER / "model_performance_repeated_runs.pdf")
vaep.savefig(fig, FOLDER / "model_performance_repeated_runs.pdf", tight_layout=False)

# %%
writer.close()
Expand Down
6 changes: 4 additions & 2 deletions vaep/plotting/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,16 @@

def _savefig(fig, name, folder: pathlib.Path = '.',
pdf=True,
dpi=300 # default 'figure'
dpi=300, # default 'figure',
tight_layout=True,
):
"""Save matplotlib Figure (having method `savefig`) as pdf and png."""
folder = pathlib.Path(folder)
fname = folder / name
folder = fname.parent # in case name specifies folders
folder.mkdir(exist_ok=True, parents=True)
fig.tight_layout()
if tight_layout:
fig.tight_layout()
fig.savefig(fname.with_suffix('.png'), dpi=dpi)
if pdf:
fig.savefig(fname.with_suffix('.pdf'), dpi=dpi)
Expand Down

0 comments on commit 59c8ddb

Please sign in to comment.