{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Plotting options " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "import matplotlib as mpl\n", "import sys\n", "label_size = 18\n", "mpl.rcParams['xtick.labelsize'] = label_size \n", "mpl.rcParams['ytick.labelsize'] = label_size \n", "from matplotlib import rc\n", "rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})\n", "## for Palatino and other serif fonts use:\n", "#rc('font',**{'family':'serif','serif':['Palatino']})\n", "rc('text', usetex=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As an example we consider the `sine` and `cosine` function, $f(x)$, in the domain $x\\in[-2\\pi, 2\\pi]$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Domain" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "x = np.linspace(-2*np.pi, 2*np.pi, 100)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot " ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.subplots(figsize=(6,4))\n", "plt.plot(x, np.sin(x), label = r\"$sin(x)$\")\n", "plt.plot(x, np.cos(x), label = r\"$cos(x)$\")\n", "plt.xlabel('$x$', fontsize = 22)\n", "plt.ylabel(r'$f(x)$', fontsize = 22)\n", "plt.xticks([-2*np.pi, -np.pi,0, np.pi, 2*np.pi], [ r\"$-2\\pi$\", r\"$-\\pi$\", r\"$0$\", r\"$\\pi$\", r\"$2\\pi$\"])\n", "plt.xlim(xmin = -8, xmax = 8)\n", "plt.legend(prop={'size': 16}, frameon = False, handlelength = .5, loc = \"best\");\n", "#plt.savefig('basic1D_Ej1C' + '.png', format='png', dpi= 150, bbox_inches='tight');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Packages, version control" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python version: 3.6.4 |Anaconda custom (64-bit)| (default, Jan 16 2018, 12:04:33) \n", "[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)]\n", " \n", "numpy == 1.14.0\n", "matplotlib == 2.1.2\n" ] } ], "source": [ "print(f\"Python version: {sys.version}\")\n", "print(\" \")\n", "print(\"numpy == \", np.__version__)\n", "print(\"matplotlib == \", mpl.__version__)" ] } ], "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.6.4" } }, "nbformat": 4, "nbformat_minor": 2 }