{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Make our Logo!\n", "\n", "The logo combines a number of fun `pyam` features, including\n", "\n", "- line plots\n", "- filling data between lines\n", "- adding ranges of final-year data" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "IPython.OutputArea.prototype._should_scroll = function(lines) { return false; }" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import itertools\n", "import pyam\n", "\n", "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "plt.style.use('seaborn-deep')" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def func(x, factor):\n", " return np.sin(x) + factor * x\n", "\n", "x = np.linspace(0, 4, 100)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "combinations = itertools.product(['m1', 'm2', 'm3', 'm4'], ['s1', 's2', 's3'])\n", "data = [[m, s] + ['r', 'v', 'u'] + list(func(x, 0.5 + 0.1 * i)) for i, (m, s) in enumerate(combinations)]\n", "df = pyam.IamDataFrame(pd.DataFrame(data, columns=pyam.IAMC_IDX + list(range(len(x)))))" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
modelscenarioregionvariableunityearvalue
0m1s1rvu00.000000
12m1s1rvu10.060595
144m1s1rvu20.121124
276m1s1rvu30.181522
408m1s1rvu40.241722
\n", "
" ], "text/plain": [ " model scenario region variable unit year value\n", "0 m1 s1 r v u 0 0.000000\n", "12 m1 s1 r v u 1 0.060595\n", "144 m1 s1 r v u 2 0.121124\n", "276 m1 s1 r v u 3 0.181522\n", "408 m1 s1 r v u 4 0.241722" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "df.filter(scenario='s2').line_plot(ax=ax, color='model', legend=False, title=False)\n", "df.filter(scenario='s2', keep=False).line_plot(ax=ax, linewidth=0.5, color='model', legend=False, title=False)\n", "df.line_plot(ax=ax, alpha=0, color='model', fill_between=True, final_ranges=dict(linewidth=4), legend=False, title=False)\n", "plt.axis('off')\n", "plt.tight_layout()\n", "fig.savefig('logo.pdf', bbox_inches='tight', transparent=True, pad_inches=0)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.2" } }, "nbformat": 4, "nbformat_minor": 2 }