{"id":7526,"date":"2022-05-07T18:10:58","date_gmt":"2022-05-07T16:10:58","guid":{"rendered":"https:\/\/www.mathweb.fr\/euclide\/?p=7526"},"modified":"2022-05-07T18:11:00","modified_gmt":"2022-05-07T16:11:00","slug":"construire-le-graphique-dune-suite-avec-python-et-latex","status":"publish","type":"post","link":"https:\/\/www.mathweb.fr\/euclide\/2022\/05\/07\/construire-le-graphique-dune-suite-avec-python-et-latex\/","title":{"rendered":"Construire le graphique d&rsquo;une suite avec Python et LaTeX"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Nous allons voir comment construire le graphique d&rsquo;une suite avec Python et LaTeX, notamment avec TiKZ, une solution graphique de LaTeX.<\/p>\n\n\n\n<!--more-->\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-white ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Au menu sur cette page...<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.mathweb.fr\/euclide\/2022\/05\/07\/construire-le-graphique-dune-suite-avec-python-et-latex\/#Introduction_pour_construire_le_graphique_dune_suite_avec_Python_et_LaTeX\" >Introduction pour construire le graphique d&rsquo;une suite avec Python et LaTeX<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.mathweb.fr\/euclide\/2022\/05\/07\/construire-le-graphique-dune-suite-avec-python-et-latex\/#Comment_construire_le_graphique_dune_suite_en_LaTeX_a_laide_de_Python\" >Comment construire le graphique d&rsquo;une suite en LaTeX \u00e0 l&rsquo;aide de Python ?<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.mathweb.fr\/euclide\/2022\/05\/07\/construire-le-graphique-dune-suite-avec-python-et-latex\/#Un_premier_exemple_de_graphique_dune_suite_avec_LaTeX_et_Python\" >Un premier exemple de graphique d&rsquo;une suite avec LaTeX et Python<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.mathweb.fr\/euclide\/2022\/05\/07\/construire-le-graphique-dune-suite-avec-python-et-latex\/#La_classe_Python_pour_construire_le_graphique_dune_suite\" >La classe Python pour construire le graphique d&rsquo;une suite<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.mathweb.fr\/euclide\/2022\/05\/07\/construire-le-graphique-dune-suite-avec-python-et-latex\/#Un_autre_exemple\" >Un autre exemple<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.mathweb.fr\/euclide\/2022\/05\/07\/construire-le-graphique-dune-suite-avec-python-et-latex\/#Un_autre_exemple-2\" >Un autre exemple<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.mathweb.fr\/euclide\/2022\/05\/07\/construire-le-graphique-dune-suite-avec-python-et-latex\/#La_classe_Python\" >La classe Python<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Introduction_pour_construire_le_graphique_dune_suite_avec_Python_et_LaTeX\"><\/span>Introduction pour construire le graphique d&rsquo;une suite avec Python et LaTeX<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">J&rsquo;avais d\u00e9j\u00e0 parl\u00e9 de cela sur la page <a href=\"https:\/\/www.mathweb.fr\/euclide\/2019\/05\/21\/construire-le-graphe-dune-suite-avec-python\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.mathweb.fr\/euclide\/2019\/05\/21\/construire-le-graphe-dune-suite-avec-python\/<\/a>, mais il s&rsquo;agissait (dans ce dernier article) de construire le graphe directement en Python avec matplotlib.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les plus averti\u00b7e\u00b7s d&rsquo;entre vous, qui utilisent \\(\\LaTeX\\), pourraient avoir envie de construire ce graphe directement avec TiKZ.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Une solution serait d&rsquo;utiliser <a href=\"https:\/\/www.mathweb.fr\/euclide\/pythontex\/\" target=\"_blank\" rel=\"noreferrer noopener\">pythontex<\/a>, mais tr\u00e8s peu pratique.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Personnellement, je pr\u00e9f\u00e8re g\u00e9n\u00e9rer le fichier \\(\\LaTeX\\) en Python.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Comment_construire_le_graphique_dune_suite_en_LaTeX_a_laide_de_Python\"><\/span>Comment construire le graphique d&rsquo;une suite en LaTeX \u00e0 l&rsquo;aide de Python ?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dans un premier temps, il faut se mettre d&rsquo;accord sur la forme de la suite: nous allons consid\u00e9rer une suite \\((u_n)\\) d\u00e9finie par son premier terme \\(u_0\\) et par la relation de r\u00e9currence \\(u_{n+1}=f(u_n)\\).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Un_premier_exemple_de_graphique_dune_suite_avec_LaTeX_et_Python\"><\/span>Un premier exemple de graphique d&rsquo;une suite avec LaTeX et Python<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Je consid\u00e8re la suite d\u00e9finie par \\(u_0=1\\) et \\(u_{n+1}=\\frac{1}{2}\\left(u_n+\\frac{7}{u_n}\\right)\\). J&rsquo;ai ainsi la fonction \\(f(x)=\\dfrac{1}{2}\\left(x+\\frac{7}{x}\\right)\\).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Avec le programme que j&rsquo;ai \u00e9crit en Python, quand je tape:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>>>> G = Graphique_suite( fonction = '0.5*(x+7\/x)', \\\n                     n = 4 , \\\n                     u0 = 1, \\\n                     xmin = -1, \\\n                     xmax = 5, \\\n                     ymin = -1,\\\n                     ymax = 5, \\\n                     stepgrid = 0.5)\n\n>>> G.exportPdf('essai' , values = True)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">j&rsquo;obtiens le PDF suivant:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/image.png\" data-fancybox=\"gallery\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/image-1024x610.png\" alt=\"graphe suite python latex\" class=\"wp-image-7527\" width=\"512\" height=\"305\" srcset=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/image-1024x610.png 1024w, https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/image-300x179.png 300w, https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/image-600x357.png 600w, https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/image-768x458.png 768w, https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/image.png 1247w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/a><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">et le fichier \\(\\LaTeX\\) suivant:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"latex\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\\documentclass{standalone}\n\\usepackage{tikz}\n\\begin{document}\n\\begin{tikzpicture}[baseline=4.8cm]\n\\draw[dotted,gray,opacity=0.5] (-1,-1) grid[step=0.5] (5,5);\n\\draw[gray,opacity=0.5] (-1,-1) grid (5,5);\n\\draw[thick,->,>=latex] (-1,0) -- (5,0);\n\\draw[thick,->,>=latex] (0,-1) -- (0,5);\n\\clip (-1,-1) rectangle (5,5);\n\\draw[thick,orange] plot[domain=-1:5] (\\x,\\x) node[below left,rotate=45,scale=0.7,outer xsep=3mm] {$y=x$};\n\\draw[thick,red] plot[domain=0.1:5,samples=100] (\\x,{0.5*(\\x+7\/\\x)});\n% Graduation des axes\n\\draw[thick] (1,0.1) -- (1,-0.1) node[below,outer sep=2mm] {1};\n\\draw[thick] (2,0.1) -- (2,-0.1) node[below,outer sep=2mm] {2};\n\\draw[thick] (3,0.1) -- (3,-0.1) node[below,outer sep=2mm] {3};\n\\draw[thick] (4,0.1) -- (4,-0.1) node[below,outer sep=2mm] {4};\n\\draw[thick] (0.1,1) -- (-0.1,1) node[left] {1};\n\\draw[thick] (0.1,2) -- (-0.1,2) node[left] {2};\n\\draw[thick] (0.1,3) -- (-0.1,3) node[left] {3};\n\\draw[thick] (0.1,4) -- (-0.1,4) node[left] {4};\n\\draw[dashed,purple] (1,0) node[below,scale=0.5,outer ysep=3mm] {$u_{0}$} -- (1,4.0);\n\\draw[dashed,purple] (1,4.0) -- (4.0,4.0);\n\\draw[dashed,purple] (4.0,4.0) -- (4.0,0);\n\\draw[dashed,purple] (4.0,0) node[below,scale=0.5,outer ysep=3mm] {$u_{1}$} -- (4.0,2.875);\n\\draw[dashed,purple] (4.0,2.875) -- (2.875,2.875);\n\\draw[dashed,purple] (2.875,2.875) -- (2.875,0);\n\\draw[dashed,purple] (2.875,0) node[below,scale=0.5,outer ysep=3mm] {$u_{2}$} -- (2.875,2.654891304347826);\n\\draw[dashed,purple] (2.875,2.654891304347826) -- (2.654891304347826,2.654891304347826);\n\\draw[dashed,purple] (2.654891304347826,2.654891304347826) -- (2.654891304347826,0);\n\\node[below,scale=0.5,outer ysep=3mm,purple] at (2.654891304347826,0) {$u_{3}$};\n%\n\\end{tikzpicture}\n\\begin{minipage}[t]{40mm}\n$u_{0} = 1$\\\\\n$u_{1} = 4.0$\\\\\n$u_{2} = 2.875$\\\\\n$u_{3} = 2.654891304347826$\\\\\n\\end{minipage}\n\\end{document}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"La_classe_Python_pour_construire_le_graphique_dune_suite\"><\/span>La classe Python pour construire le graphique d&rsquo;une suite<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Comme vous pouvez le constater sur l&rsquo;exemple pr\u00e9c\u00e9dent, on cr\u00e9e un objet \u00ab\u00a0Graphique_suite\u00a0\u00bb avec les instances suivantes:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><em>fonction<\/em> : cha\u00eene de caract\u00e8res d\u00e9finissant la fonction;<\/li><li><em>n<\/em> : entier d\u00e9signant le nombre de termes \u00e0 placer sur le graphe;<\/li><li><em>u0<\/em> : la valeur du premier terme de la suite;<\/li><li><em>xmin<\/em> et <em>xmax<\/em> d\u00e9signent les bornes de l&rsquo;intervalle sur lequel tracer le graphique;<\/li><li><em>ymin<\/em> et <em>ymax<\/em> d\u00e9signent les bornes de l&rsquo;intervalle image souhait\u00e9;<\/li><li><em>stepgrid<\/em> : par d\u00e9faut, cette valeur vaut 0.2; cela correspond aux pointill\u00e9s de la grille en gris;<\/li><li><em>xscale<\/em> : l&rsquo;\u00e9chelle en abscisse (pour agrandir ou r\u00e9duire le graphique)<\/li><li><em>yscale<\/em> : l&rsquo;\u00e9chelle en ordonn\u00e9e<\/li><li><em>valwidth<\/em> : largeur (en millim\u00e8tres) de la bo\u00eete contenant les valeurs des termes successifs de la suite<\/li><li>Df = [ x , y ] : domaine de d\u00e9finition de la courbe \u00e0 tracer.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Un_autre_exemple\"><\/span>Un autre exemple<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>>>> G = Graphique_suite( fonction = 'sqrt(x)', \\\n                     n = 7 , \\\n                     u0 = 0.1, \\\n                     xmin = -0.2, \\\n                     xmax = 1.2, \\\n                     ymin = -0.2,\\\n                     ymax = 1.2, \\\n                     stepgrid = 0.1, \\\n                     xscale = 10, \\\n                     yscale = 6,\\\n                     valwidth = 50, \\\n                     Df = &#91;0,1.2])\n\n>>> G.exportPdf('essai' , values = False)<\/code><\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/image-1.png\" data-fancybox=\"gallery\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/image-1-1024x617.png\" alt=\"graphique suite python latex\" class=\"wp-image-7528\" width=\"512\" height=\"309\" srcset=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/image-1-1024x617.png 1024w, https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/image-1-300x181.png 300w, https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/image-1-600x361.png 600w, https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/image-1-768x462.png 768w, https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/image-1.png 1234w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/a><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Un_autre_exemple-2\"><\/span>Un autre exemple<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>>>> G = Graphique_suite( fonction = 'ln(x+3)', \\\n                     n = 4 , \\\n                     u0 = -1, \\\n                     xmin = -3, \\\n                     xmax = 3, \\\n                     ymin = -2,\\\n                     ymax = 3, \\\n                     stepgrid = 0.2, \\\n                     xscale = 2, \\\n                     yscale = 2,\\\n                     valwidth = 50, \\\n                     Df = &#91;-2.8,3])\n\n>>> G.exportPdf('essai' , values = True)<\/code><\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/image-2.png\" data-fancybox=\"gallery\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/image-2-1024x598.png\" alt=\"graphique suite latex python\" class=\"wp-image-7529\" width=\"512\" height=\"299\" srcset=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/image-2-1024x598.png 1024w, https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/image-2-300x175.png 300w, https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/image-2-600x351.png 600w, https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/image-2-768x449.png 768w, https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/image-2-1200x700.png 1200w, https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/image-2.png 1273w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/a><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"La_classe_Python\"><\/span>La classe Python<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Classe Graphique_suite\n# Author: St\u00e9phane Pasquet\n# Date : 2022-05-07\n# URL : https:\/\/mathweb.fr\n\nfrom sympy import Symbol, lambdify\nfrom os import system, remove\nfrom os.path import exists\nfrom math import atan, pi\n\nclass Graphique_suite:\n    def __init__(self,fonction,n,u0,xmin,xmax,ymin,ymax,stepgrid=0.2,xscale=1,yscale=1,valwidth=40,Df=None):\n        self.fonction = fonction\n        x = Symbol('x')\n        self.f = lambdify(x,self.fonction,'math')\n        self.xmin = xmin\n        self.xmax = xmax\n        self.ymin = ymin\n        self.ymax = ymax\n        self.stepgrid = stepgrid\n        self.xscale = xscale\n        self.yscale = yscale\n        self.valwidth = valwidth\n        if Df == None:\n            self.Df = [ xmin , xmax ]\n        else:\n            self.Df = Df\n        self.u0 = u0\n        self.n = n\n        self.U = [ (0,self.u0) ] # self.U = liste des termes successifs (k,u(k))\n        for k in range(1,self.n):\n            self.U.append( ( k , self.f(self.U[k-1][1]) ) )\n        \n    def graphique_tex(self,values):\n        tex = '\\\\documentclass{standalone}\\n'\n        tex += '\\\\usepackage{tikz}\\n'\n        tex += '\\\\begin{document}\\n'\n        tex += '\\\\begin{tikzpicture}[baseline='+str((self.ymax-0.2)*self.yscale)+'cm,xscale='+str(self.xscale)+',yscale='+str(self.yscale)+']\\n'\n        tex += f'\\\\draw[dotted,gray,opacity=0.5] ({self.xmin},{self.ymin}) grid[step={self.stepgrid}] ({self.xmax},{self.ymax});\\n'\n        tex += f'\\\\draw[gray,opacity=0.5] ({self.xmin},{self.ymin}) grid ({self.xmax},{self.ymax});\\n'\n        tex += f'\\\\draw[thick,->,>=latex] ({self.xmin},0) -- ({self.xmax},0);\\n'\n        tex += f'\\\\draw[thick,->,>=latex] (0,{self.ymin}) -- (0,{self.ymax});\\n'\n        tex += f'\\\\clip ({self.xmin},{self.ymin}) rectangle ({self.xmax},{self.ymax});\\n'\n        tex += f'\\\\draw[thick,orange] plot[domain={self.xmin}:{self.xmax}] '\n        tex += '(\\\\x,\\\\x) node[below left,rotate='+str(180*atan(self.yscale\/self.xscale)\/pi)+',scale=0.7,outer xsep=3mm] {$y=x$};\\n'\n        tex += '\\\\draw[thick,red] plot[domain='+str(self.Df[0])+':'+str(self.Df[1])+',samples=100] (\\\\x,{'+self.fonction.replace('x','\\\\x')+'});\\n'\n        tex += '% Graduation des axes\\n'\n        \n        for a in range(int(self.xmin),int(self.xmax)+1):\n            if a != 0:\n                tex += f'\\\\draw[thick] ({a},0.1\/{self.yscale}) -- ({a},-0.1\/{self.yscale}) node[below,outer sep=2mm] '\n                tex += '{' + str(a) + '};\\n'\n        for a in range(int(self.ymin),int(self.ymax)+1):\n            if a != 0:\n                tex += f'\\\\draw[thick] (0.1\/{self.xscale},{a}) -- (-0.1\/{self.yscale},{a}) node[left] '\n                tex += '{' + str(a) + '};\\n'\n    \n        for k in range(self.n-1):\n            tex += f\"\\\\draw[dashed,purple] ({self.U[k][1]},0) node[below,scale=0.5,outer ysep=3mm] \" +  '{$u_{'+str(k)+'}$} -- '\n            tex += f\"({self.U[k][1]},{self.U[k+1][1]});\\n\"\n            tex += f\"\\\\draw[dashed,purple] ({self.U[k][1]},{self.U[k+1][1]}) -- ({self.U[k+1][1]},{self.U[k+1][1]});\\n\"\n            tex += f\"\\\\draw[dashed,purple] ({self.U[k+1][1]},{self.U[k+1][1]}) -- ({self.U[k+1][1]},0);\\n\"\n            \n        tex += f\"\\\\node[below,scale=0.5,outer ysep=3mm,purple] at ({self.U[k+1][1]},0) \"\n        tex += '{$u_{'+str(self.n-1)+'}$};\\n%\\n'        \n        tex += '\\\\end{tikzpicture}\\n'\n        \n        if values:\n            tex += '\\\\begin{minipage}[t]{'+str(self.valwidth)+'mm}\\n'\n            for v in self.U:\n                tex += '$u_{'+ str(v[0]) + '} = ' + str(v[1]) + '$\\\\\\\\\\n'\n            tex += '\\\\end{minipage}\\n'\n        \n        tex += '\\\\end{document}'\n    \n        return tex\n    \n    def exportPdf(self,name,values=False):\n        if exists(f'{name}.tex'):\n            remove(f'{name}.tex')\n            \n        fichier = open(f\"{name}.tex\",\"x\")\n        fichier.write(self.graphique_tex(values))\n        fichier.close()\n\n        system(f\"pdflatex {name}.tex\")\n        system(f\"START {name}.pdf\")<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Nous allons voir comment construire le graphique d&rsquo;une suite avec Python et LaTeX, notamment avec TiKZ, une solution graphique de LaTeX.<\/p>\n","protected":false},"author":1,"featured_media":7530,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,6,5],"tags":[242,108],"class_list":["post-7526","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-latex","category-mathematiques","category-python","tag-graphique","tag-suites"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Construire le graphique d&#039;une suite avec Python et LaTeX - Mathweb.fr<\/title>\n<meta name=\"description\" content=\"Nous allons voir comment construire le graphique d&#039;une suite avec Python et LaTeX, notamment avec TiKZ, une solution graphique de LaTeX.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mathweb.fr\/euclide\/2022\/05\/07\/construire-le-graphique-dune-suite-avec-python-et-latex\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Construire le graphique d&#039;une suite avec Python et LaTeX - Mathweb.fr\" \/>\n<meta property=\"og:description\" content=\"Nous allons voir comment construire le graphique d&#039;une suite avec Python et LaTeX, notamment avec TiKZ, une solution graphique de LaTeX.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mathweb.fr\/euclide\/2022\/05\/07\/construire-le-graphique-dune-suite-avec-python-et-latex\/\" \/>\n<meta property=\"og:site_name\" content=\"Mathweb.fr\" \/>\n<meta property=\"article:published_time\" content=\"2022-05-07T16:10:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-05-07T16:11:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/head-articles-python-graphique-suite-latex.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"740\" \/>\n\t<meta property=\"og:image:height\" content=\"198\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"St\u00e9phane Pasquet\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"St\u00e9phane Pasquet\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/05\\\/07\\\/construire-le-graphique-dune-suite-avec-python-et-latex\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/05\\\/07\\\/construire-le-graphique-dune-suite-avec-python-et-latex\\\/\"},\"author\":{\"name\":\"St\u00e9phane Pasquet\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"headline\":\"Construire le graphique d&rsquo;une suite avec Python et LaTeX\",\"datePublished\":\"2022-05-07T16:10:58+00:00\",\"dateModified\":\"2022-05-07T16:11:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/05\\\/07\\\/construire-le-graphique-dune-suite-avec-python-et-latex\\\/\"},\"wordCount\":408,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/05\\\/07\\\/construire-le-graphique-dune-suite-avec-python-et-latex\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/head-articles-python-graphique-suite-latex.jpg\",\"keywords\":[\"graphique\",\"suites\"],\"articleSection\":[\"LaTeX\",\"Math\u00e9matiques\",\"Python\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/05\\\/07\\\/construire-le-graphique-dune-suite-avec-python-et-latex\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/05\\\/07\\\/construire-le-graphique-dune-suite-avec-python-et-latex\\\/\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/05\\\/07\\\/construire-le-graphique-dune-suite-avec-python-et-latex\\\/\",\"name\":\"Construire le graphique d'une suite avec Python et LaTeX - Mathweb.fr\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/05\\\/07\\\/construire-le-graphique-dune-suite-avec-python-et-latex\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/05\\\/07\\\/construire-le-graphique-dune-suite-avec-python-et-latex\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/head-articles-python-graphique-suite-latex.jpg\",\"datePublished\":\"2022-05-07T16:10:58+00:00\",\"dateModified\":\"2022-05-07T16:11:00+00:00\",\"description\":\"Nous allons voir comment construire le graphique d'une suite avec Python et LaTeX, notamment avec TiKZ, une solution graphique de LaTeX.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/05\\\/07\\\/construire-le-graphique-dune-suite-avec-python-et-latex\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/05\\\/07\\\/construire-le-graphique-dune-suite-avec-python-et-latex\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/05\\\/07\\\/construire-le-graphique-dune-suite-avec-python-et-latex\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/head-articles-python-graphique-suite-latex.jpg\",\"contentUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/head-articles-python-graphique-suite-latex.jpg\",\"width\":740,\"height\":198,\"caption\":\"graphique python latex suite\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/05\\\/07\\\/construire-le-graphique-dune-suite-avec-python-et-latex\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Construire le graphique d&rsquo;une suite avec Python et LaTeX\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#website\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/\",\"name\":\"Mathweb.fr\",\"description\":\"Math\u00e9matiques, LaTeX et Python\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\",\"name\":\"St\u00e9phane Pasquet\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\",\"contentUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\",\"width\":74,\"height\":77,\"caption\":\"St\u00e9phane Pasquet\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Construire le graphique d'une suite avec Python et LaTeX - Mathweb.fr","description":"Nous allons voir comment construire le graphique d'une suite avec Python et LaTeX, notamment avec TiKZ, une solution graphique de LaTeX.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.mathweb.fr\/euclide\/2022\/05\/07\/construire-le-graphique-dune-suite-avec-python-et-latex\/","og_locale":"fr_FR","og_type":"article","og_title":"Construire le graphique d'une suite avec Python et LaTeX - Mathweb.fr","og_description":"Nous allons voir comment construire le graphique d'une suite avec Python et LaTeX, notamment avec TiKZ, une solution graphique de LaTeX.","og_url":"https:\/\/www.mathweb.fr\/euclide\/2022\/05\/07\/construire-le-graphique-dune-suite-avec-python-et-latex\/","og_site_name":"Mathweb.fr","article_published_time":"2022-05-07T16:10:58+00:00","article_modified_time":"2022-05-07T16:11:00+00:00","og_image":[{"width":740,"height":198,"url":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/head-articles-python-graphique-suite-latex.jpg","type":"image\/jpeg"}],"author":"St\u00e9phane Pasquet","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"St\u00e9phane Pasquet","Dur\u00e9e de lecture estim\u00e9e":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.mathweb.fr\/euclide\/2022\/05\/07\/construire-le-graphique-dune-suite-avec-python-et-latex\/#article","isPartOf":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2022\/05\/07\/construire-le-graphique-dune-suite-avec-python-et-latex\/"},"author":{"name":"St\u00e9phane Pasquet","@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"headline":"Construire le graphique d&rsquo;une suite avec Python et LaTeX","datePublished":"2022-05-07T16:10:58+00:00","dateModified":"2022-05-07T16:11:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2022\/05\/07\/construire-le-graphique-dune-suite-avec-python-et-latex\/"},"wordCount":408,"commentCount":0,"publisher":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"image":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2022\/05\/07\/construire-le-graphique-dune-suite-avec-python-et-latex\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/head-articles-python-graphique-suite-latex.jpg","keywords":["graphique","suites"],"articleSection":["LaTeX","Math\u00e9matiques","Python"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.mathweb.fr\/euclide\/2022\/05\/07\/construire-le-graphique-dune-suite-avec-python-et-latex\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.mathweb.fr\/euclide\/2022\/05\/07\/construire-le-graphique-dune-suite-avec-python-et-latex\/","url":"https:\/\/www.mathweb.fr\/euclide\/2022\/05\/07\/construire-le-graphique-dune-suite-avec-python-et-latex\/","name":"Construire le graphique d'une suite avec Python et LaTeX - Mathweb.fr","isPartOf":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2022\/05\/07\/construire-le-graphique-dune-suite-avec-python-et-latex\/#primaryimage"},"image":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2022\/05\/07\/construire-le-graphique-dune-suite-avec-python-et-latex\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/head-articles-python-graphique-suite-latex.jpg","datePublished":"2022-05-07T16:10:58+00:00","dateModified":"2022-05-07T16:11:00+00:00","description":"Nous allons voir comment construire le graphique d'une suite avec Python et LaTeX, notamment avec TiKZ, une solution graphique de LaTeX.","breadcrumb":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2022\/05\/07\/construire-le-graphique-dune-suite-avec-python-et-latex\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mathweb.fr\/euclide\/2022\/05\/07\/construire-le-graphique-dune-suite-avec-python-et-latex\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.mathweb.fr\/euclide\/2022\/05\/07\/construire-le-graphique-dune-suite-avec-python-et-latex\/#primaryimage","url":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/head-articles-python-graphique-suite-latex.jpg","contentUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/05\/head-articles-python-graphique-suite-latex.jpg","width":740,"height":198,"caption":"graphique python latex suite"},{"@type":"BreadcrumbList","@id":"https:\/\/www.mathweb.fr\/euclide\/2022\/05\/07\/construire-le-graphique-dune-suite-avec-python-et-latex\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.mathweb.fr\/euclide\/"},{"@type":"ListItem","position":2,"name":"Construire le graphique d&rsquo;une suite avec Python et LaTeX"}]},{"@type":"WebSite","@id":"https:\/\/www.mathweb.fr\/euclide\/#website","url":"https:\/\/www.mathweb.fr\/euclide\/","name":"Mathweb.fr","description":"Math\u00e9matiques, LaTeX et Python","publisher":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mathweb.fr\/euclide\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":["Person","Organization"],"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69","name":"St\u00e9phane Pasquet","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp","url":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp","contentUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp","width":74,"height":77,"caption":"St\u00e9phane Pasquet"},"logo":{"@id":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp"}}]}},"_links":{"self":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts\/7526","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/comments?post=7526"}],"version-history":[{"count":0,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts\/7526\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/media\/7530"}],"wp:attachment":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/media?parent=7526"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/categories?post=7526"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/tags?post=7526"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}