|
Bonsoir, Pour mes graphiques, j'utilise en général asymptote mais je profite des vacances scolaires pour me pencher sur Tikz que je ne connais que de loin. Ci-dessous, un code pour essayer d'obtenir un nuage de points et sa droite des moindres carrés de y en x (calculs faits en amont). Je n'obtiens malheureusement que le nuage de points. J'ai vu qu'il existait aussi pgfplots mais ce sera pour les prochaines vacances. Là, j'aimerais vraiment comprendre pourquoi ma droite n'est pas visible. Lorsque je commente le premier crochet d'options et le remplace par le seul Est-ce un problème d'unités mal configurées ? Merci de votre aide
|
|
Le package tkz-grapheur (d'un auteur talentueux francophone) permet de réaliser aisément ce qui est demandé, avec en prime un calcul intégré de la droite de régression linéaire, à partir des données. tkz-grapheur charge en interne le package xint-regression (ce dernier permet d'afficher explicitement l'équation de la droite de régression en la calculant à partir des données). Il est impératif, pour que le code suivant fonctionne, de disposer de la toute dernière version de tkz-grapheur (qui rajoute la possibilité d'ajouter du texte à des nœuds prédéfinis, liés aux axes). Cette version est sortie il y a quelques jours (version 0.30a, 13 février 2026). Ceci permet de se rendre compte que la droite d'équation y = -0.37 * x + 331.33 n'est PAS la droite de régression linéaire correspondant aux points échantillonnés. Le code suivant donne l'équation y = -0,366 + 315,057. La pente est bien correcte, mais pas l'ordonnée à l'origine. La simplicité et l'expressivité du code peuvent faire de tkz-grapheur un remplaçant fort intéressant de la bibliothèque \documentclass{article} \usepackage[paper=a4paper, portrait=true, twoside=false, left=1cm, top=1cm, noheadfoot, includeall, nomarginpar, centering=true]{geometry} \usepackage{tkz-grapheur} \begin{document} \def\LISTEXX{300,350,400,450,500,600} \def\LISTEYY{210,190,160,152,124,102} \begin{GraphiqueTikz} [x=0.02cm,y=0.1cm,Xmin=250,Xmax=750,Xgrille=50,Xgrilles=5, Origx=250,Origy=50,Ymin=50,Ymax=250,Ygrille=10,Ygrilles=1] \TracerAxesGrilles[Elargir=2.5mm,Police=\footnotesize]{auto}{auto} \TracerNuage[Style=o,CouleurNuage=red]{\LISTEXX}{\LISTEYY} \TracerAjustement[Couleur=blue,Nom=ajust]<ajust>{lin}{\LISTEXX}{\LISTEYY} \draw (axeox-ee) node[above right] {prix}; \draw (axeoy-nn) node[above left] {ventes}; \end{GraphiqueTikz} \xintLINreg[round=3]{\LISTEXX}{\LISTEYY}% La droite de régression linéaire est d'équation $y=\num{\linrega}\times x +\num{\linregb}$. \end{document}
|
|
Votre graphique comporte deux tracés: le nuage de points et la droite de tendance. Actuellement, les coordonnées du nuage sont définies par les attributs Le problème survient car l'option Voici trois solutions pour résoudre ce conflit: Option 1 :C'est la solution la plus simple. Elle consiste à renommer vos données pour qu'elles correspondent aux attributs par défaut des axes. Il suffit de remplacez data [set=ventes] {
prix, ventes
par data [set=ventes] {
x, y
dans votre bloc de données et de supprimez les définitions explicites Option 2 :Si vous souhaitez conserver les noms prix et ventes pour plus de clarté dans votre code, vous devez adapter la fonction de régression: Modifiez le bloc de la fonction comme suit: data [set=regression, format=function] { var prix : interval [250:750] samples 10; func ventes = -0.37 * \value{prix} + 331.33; }; Option 3 :Voir la section Advanced: Creating New Axis Systems. |
|
Une collègue qui connaît mieux tikz qui moi (pas difficile !) m'a dépanné. Le problème, ce sont les Dans la documentation, il semble que ces variables pourraient porter le même nom dans les deux ensembles de données mais avec autre chose que Voici néanmoins un code rectifié qui compile correctement (avec quelques extras dont j'ai eu besoin).
|


Un peu hors-sujet, mais attention, l'équation de la droite calculée est erronée, ce n'est pas y=-0,37x +331,33 mais plutôt y =-0,37x +315,06. Voir ma réponse qui utilise un package capable de calculer l'équation de la droite et d'en afficher les coefficients.