je recherche à tracer la représentation graphique d'une loi géométrique sans devoir à chaque fois insérer les hauteurs des bâtons.
Pour cela, j'ai créé un script Python qui me fait le calcul et me donne en retour les coordonnées.
J'ai donc réussi à les récupérer et donc le graphique voulu est obtenu mais je souhaiterai ne plus avoir à faire ce copier coller.
Pour cela, j'ai mis mon script dans le document LaTeX.
J'ai cru comprendre que l'on pouvait le compiler dans le document avec !{la fonction à appeler} mais cela ne fonctionne pas (j'ai mis la ligne en commentaire).
J'ai indiqué en dessous les valeurs qui auraient dû être recopiées.
Si quelqu'un peut trouver la solution, cela serait une satisfaction même.
Merci à ceux qui voudront bien s'intéresser à ma question.
Code : Tout sélectionner
\documentclass[11pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{amsmath,amsfonts,amssymb}
\usepackage{pstricks}
\usepackage{pstricks-add}
\usepackage{tikz,tkz-tab}
\usepackage[gobble=auto]{pythontex}
\usepackage{pgfplots}
\pgfplotsset{width=7cm,compat=1.14}
\begin{document}
\begin{pycode}
from math import*
def coordo_loi_geo(p,fin):
lines=str('{')
for i in range(1,fin+1):
lines +=str('(')+str(i)+str(',')+str(p*(1-p)**(i-1))+str(')')
lines +=str('}')
return(lines)
\end{pycode}
\begin{center}
\begin{tikzpicture}
\begin{axis}[axis x line=bottom ,axis y line = left,enlarge x limits=true,enlarge y limits=0,title={Loi géométrique $\mathcal{G}(0,25)$},xtick={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18},ytick={0,0.05,0.1,0.15,0.2,.25},yticklabels={$0$,${0,05}$,${0,10}$,${0,15}$,${0,20}$,${0,25}$},width=13cm,tick align=outside,
]
\addplot [draw=blue!50!white,fill=blue!50!white,
ybar,
] coordinates
%!{coordo_loi_geo(0.25,18)}; % ce que je cherche à faire marcher
{
(1,0.25)(2,0.1875)(3,0.140625)(4,0.10546875)(5,0.0791015625)(6,0.059326171875)(7,0.04449462890625)(8,0.0333709716796875)(9,0.025028228759765625)(10,0.01877117156982422)(11,0.014078378677368164)(12,0.010558784008026123)(13,0.007919088006019592)(14,0.005939316004514694)(15,0.004454487003386021)(16,0.0033408652525395155)(17,0.0025056489394046366)(18,0.0018792367045534775)
};
\end{axis}
\end{tikzpicture}
\end{center}
\end{document}