{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Matplotlib :\n", "\n", "## tracer un diagramme en barres horizontales ( = Horizontal bar chart)\n", "\n", "Présenter des données de façon graphique peut permettre d'en faire une meilleure analyse visuelle.\n", "\n", "Le package matplotlib permet une multitude de représentations graphiques. \n", "\n", "C'est un package que nous avons déja rencontré lors de l'étude d'un programme Python en relation avec le cours de Sciences Physiques. \n", "\n", "Plus précisemment, nous avons eu affaire à l'un des modules de ce package, **pyplot** que nous allons retrouver ici. \n", "\n", "L'aide concernant ce module peut-être obtenue avec l'aide intégrée de Python, mais on pourra préférer voir l'aide en ligne : \n", "\n", " https://matplotlib.org/3.2.1/api/_as_gen/matplotlib.pyplot.html#module-matplotlib.pyplot \n", " \n", " On pourra y trouver un exemple de diagramme en barres horizontales :\n", " \n", " https://matplotlib.org/3.2.1/gallery/lines_bars_and_markers/barh.html#sphx-glr-gallery-lines-bars-and-markers-barh-py \n", " \n", " mais pour démarrer, on pourra préférer le code ci-dessous, qui va à l'essentiel (bien que présentant des petits défauts). Il a été trouvé sur le site https://pythonspot.com/matplotlib-bar-chart/.\n", " \n", " Exécuter le code et aller voir les commentaires donnés en dessous. **Expérimenter** sur ce code en faisant des (tentatives de) modifications. Accompagner ces modifications d'une **lecture de la documentattion correspondante** (Cf le premier lien donné ci-dessus) :\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ " # Cette première ligne de 'code' est nécessaire pour le notebook jupyter.\n", "# Ne pas la copier si on souhaite utiliser le reste du code dans Thonny :\n", "%matplotlib inline \n", "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "objects = ('Python', 'C++', 'Java', 'Perl', 'Scala', 'Lisp')\n", "y_pos = np.arange(len(objects))\n", "performance = [10,8,6,4,2,1]\n", "\n", "plt.barh(y_pos, performance, align='center', alpha=0.5)\n", "plt.yticks(y_pos, objects)\n", "plt.xlabel('Usage')\n", "plt.title('Programming language usage')\n", "\n", "plt.show()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Commentaires :\n", "\n", "#### 1- pyplot :\n", "\n", "Pyplot étant un module de Matplotlib, l'utilisation d'une méthode de pyplot devrait se faire par :\n", "\n", " **matplotlib.pyplot.nom_de_la_methode()**\n", " \n", " ce qui serait assez fastidieux... Pour cette raison un alias est réalisé dans la ligne d'importation :\n", " \n", " **import matplotlib.pyplot as plt**\n", " \n", " Cet alias est celui proposé par la documentation de pyplot : on évitera d'en utiliser un autre. Cela permet une homogénéité d'écriture avec les autres développeurs.\n", " \n", " Dans le code on trouvera donc :\n", " \n", " **plt.nom_de_la_methode()** au lieu de **matplotlib.pyplot.nom_de_la_methode()**\n", "\n", "#### 2- numpy :\n", "\n", "Numpy est un module python que l'on retrouve souvent associé à Matplotlib... de ce fait certains utilisent systématiquement numpy et matplotlib ensemble bien que ce ne soit pas toujours justifié. \n", "\n", "Numpy permet de réaliser du calcul scientifique, en particulier sur des tableaux / matrices. Au bout des calculs scientifiques on a souvent une représentation graphique, et c'est là qu'entre en jeu Matplotlib avec son module Pyplot.\n", "\n", "Mais on peut fort bien avoir fait du travail sur Python et vouloir faire une représentation grahique. Pyplot est alors utilisé, sans que l'on ait eu besoin de faire intervenir Numpy.\n", "\n", "Dans le code d'exemple ci-dessus, numpy est utilisé dans une seule ligne d'instruction :\n", "\n", "y_pos = np.arange(len(objects))\n", "\n", "Voici ce que donne la documentation de numpy.arange (https://docs.scipy.org/doc/numpy/reference/generated/numpy.arange.html) :\n", "\n", "\n", "**numpy.arange([start, ]stop, [step, ]dtype=None)**\n", "\n", " Return evenly spaced values within a given interval.\n", "\n", " Values are generated within the half-open interval [start, stop) (in other words, the interval including start but excluding stop). For integer arguments the function is equivalent to the Python built-in range function, but returns an ndarray rather than a list.\n", "\n", " When using a non-integer step, such as 0.1, the results will often not be consistent. It is better to use numpy.linspace for these cases.\n", " \n", "On y apprend que cette méthode est équivalente à la fonction native range() de Python si on travaille avec des entiers. ( numpy.arange peut travailler avec des valeurs non entières contrairement à range()...mais on nous dit que les résultats pourraient ne pas être cohérents...). \n", "\n", "Une petite imprécision dans cette documentation : la fonction native range() ne renvoie plus une liste (c'était vrai avec Python 2), mais un itérateur sur une série de nombres. Si on veut une liste il faut la créer (avec la fonction native list).\n", "\n", "Tester les codes ci-dessous pour voir la différence entre range(), list(range()) et np.arange() utilisées avec des entiers. On constate que le format de l'objet renvoyé par np.arange est différent, spécifique de la bibliothèque numpy (un objet de type 'array', type qui n'existe pas dans python)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "range(2,10,2)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "list(range(2,10,2))\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "np.arange(2,10,2)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " Essai avec des nombres non entiers :" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "range(2,10,0.5)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "np.arange(2,6,0.5)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# un exemple de problème : avec ce code on devrait obtenir : array([2. , 2.2, 2.4]) car la valeur de stop 2.6 devrait\n", "# être exclue... mais :\n", "import numpy as np\n", "np.arange(2.0, 2.6, 0.2)\n", "# ce problème est du à la précision non infinie sur les flottants ..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On doit être capable de dire ce que fait cette ligne d'instruction :\n", "\n", "**y_pos = np.arange(len(objects))**\n", "\n", "et se demander si :\n", "**y_pos = range(len(objects))** pourrait suffire **ici** (auquel cas l'importation du module numpy ne serait plus nécessaire). Il faut donc regarder à quoi sert par la suite y_pos ; doit-il avoir le type fourni par numpy ou être d'un autre type. On va donc explorer la documentation des méthodes dans lesquelles y_pos est utilisé.\n", "\n", "Par exemple, aller voir l'aide sur barh() pour répondre aux questions suivantes :\n", "\n", " - Dans ce code les structures de données qui servent à alimenter le graphique ('objects' et 'performance') sont de deux types différents... Cela semble curieux... N'est-il pas possible d'utiliser le même type pour les deux (par exemple le type list) ?\n", " - Le paramètre align peut prendre deux valeurs. Lesquelles ? A-t-il une valeur par défaut ? Ici le développeur lui a donné la valeur 'center' : était-ce utile ? Tester avec la valeur 'edge' pour voir le résultat sur le graphique.\n", " - lorsque l'on va voir l'aide pour barh, on obtient :\n", " \n", " **matplotlib.pyplot.barh(y, width, height=0.8, left=None, \\*, align='center', \\*\\*kwargs)**\n", " \n", " dans le code en exemple, on a :\n", " \n", " **plt.barh(y_pos, performance, align='center', alpha=0.5)**\n", " - y_pos = paramètre effectif du paramètre formel y\n", " - performance = paramètre effectif du paramètre formel width\n", " - pas de valeur donnée à height ; elle aura donc la valeur par défaut 0,8\n", " - pas de valeur donnée à left ; elle aura donc la valeur par défaut None\n", " - align avait été redéfini avec sa valeur par défaut ... ???\n", " - mais alpha n'apparaît pas dans la liste des paramètres ...\n", " \n", " En fait il y a un dernier paramètre formel appelé **kwargs** qui signifie **keyword arguments** et qui permet d'ajouter un nombre quelconque de paramètres supplémentaires, parfois nombreux et peu souvent utilisés, raison pour\n", "laquelle ils ne sont pas détaillés. Ces paramètres sont bien sûr connus de la fonction et il faudra aller voir l'aide détaillée pour les trouver.\n", "Pour la méthode barh ( https://matplotlib.org/3.2.1/api/_as_gen/matplotlib.pyplot.barh.html#matplotlib.pyplot.barh) la page web commence par décrire les 5 paramètres principaux (de y à align), puis donne le type retourné puis seulement après décrit les autres paramètres possibles : de 'color' à 'log' sans que l'on y trouve 'alpha'...et c'est seulement plus bas sur la page que l'on trouve :\n", "'Other optional kwargs:' avec 'alpha' dans cette liste...où vous apprendrez que alpha est de type 'float or None'.\n", "\n", "Essayer de modifier alpha (on verra que les valeurs possibles sont comprises entre 0 et 1. Observer l'effet : alpha premet de gérer la 'transparence'. C'est d'ailleurs un terme utilisé en infographie.\n", "\n", "\n", "Essayer de modifier **étape par étape** le code ci-dessous :" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Cette première ligne de 'code' est nécessaire pour le notebook jupyter.\n", "# Ne pas la copier si on souhaite utiliser le reste du code dans Thonny :\n", "%matplotlib inline \n", "\n", "import matplotlib.pyplot as plt\n", "\n", "# numpy n'a pas été conservé dans ce code modifié\n", "\n", "objects = ['Python', 'C++', 'Java', 'Perl', 'Scala', 'Lisp']\n", "y_pos = range(len(objects)) \n", "performance = [10,8,6,4,2,1]\n", "\n", "plt.barh(y_pos, performance,height=0.4, align='edge', alpha=0.2)\n", "plt.yticks(y_pos, objects)\n", "plt.xlabel('Utilisation')\n", "plt.title('Utilisation des langages de programmation')\n", "\n", "plt.show()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Améliorer la présentation avec une palette de couleurs\n", "\n", "Le sujet est vaste. Pour s'en convaincre, aller sur cette page : https://matplotlib.org/3.1.0/gallery/color/colormap_reference.html\n", "\n", "On se propose d'utiliser une gamme de couleur nommée 'veridis' dont on extraira les couleurs nécessaires pour fire une palette de couleurs adaptée à notre diagramme en barre (on va avoir une couleur différente par barre).\n", "\n", "Cela nécessite l'importation d'une librairie supplémentaire\n", "\n", "On crée la palette de couleurs adaptée aux nombre de barres : \n", "\n", "**palette = cm.get_cmap('viridis', len(objects) )**\n", "\n", "On pourra remplacer la gamme chromatique 'veridis' par une autre proposée dans l'aide ('plasma', 'inferno', 'magma', 'cividis') selon l'effet recherché\n" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Cette première ligne de 'code' est nécessaire pour le notebook jupyter.\n", "# Ne pas la copier si on souhaite utiliser le reste du code dans Thonny :\n", "%matplotlib inline \n", "\n", "import matplotlib.pyplot as plt\n", "import matplotlib.cm as cm\n", "# numpy n'a pas été conservé dans ce code modifié\n", "\n", "objects = ['Python', 'C++', 'Java', 'Perl', 'Scala', 'Lisp']\n", "y_pos = range(len(objects)) \n", "performance = [10,8,6,4,2,1]\n", "\n", "# on crée une palette de couleurs. Elle contient autant de couleurs différentes\n", "# qu'il n'y a d'éléments dans la liste 'objects':\n", "palette = cm.get_cmap('viridis', len(objects) )\n", "\n", "# dans la méthode plt.barh on utilisera on donnera au paramètre 'color' la valeur 'palette.colors' \n", "# on peut toujours utiliser le paramètre 'alpha' :\n", "plt.barh(y_pos, performance,height=0.6, color=palette.colors, alpha=0.6)\n", "plt.yticks(y_pos, objects)\n", "plt.xlabel('Utilisation')\n", "plt.title('Utilisation des langages de programmation')\n", "\n", "plt.show()" ] } ], "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.7.3" } }, "nbformat": 4, "nbformat_minor": 1 }