Créer un graphique avec une série de points

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

Créer un graphique avec une série de points

Messagepar iznogoud » Mardi 04 Novembre 2008, 22:26

Bonjour à tous,

Je souhaite réaliser une courbe passant par une série de points (origine des données : fichier excel ou csv par l'intermédiaire de PRO-Engineer).
Etant donné que j'ai un poil dans la main, je souhaite me simplifier la tâche au maximun (je ne souhaite que lui renseigner les coordonnées Y, et Latex fait le reste !!!)

Je suppose que la solution est dans PSTricks, mais je me vois mal réaliser ma courbe avec une cascade de \line....

Je suis preneur pour toutes les bonnes idées.

D'avance merci
iznogoud
Déca-utilisateur
 
Messages: 36
Inscription: Mardi 04 Novembre 2008, 22:14
Localisation: Strasbourg
Statut actuel: Post-bac | Ecole d'ingénieur

Publicité

Re: Créer un graphique avec une série de points

Messagepar MB » Jeudi 06 Novembre 2008, 11:47

iznogoud a écrit:Je suppose que la solution est dans PSTricks, mais je me vois mal réaliser ma courbe avec une cascade de \line ...


Je ne connais pas spécialement PSTricks, mais tu peux déjà regarder cette page : il y a peut être des choses qui peuvent t'intéresser. Pour récupérer les données dans un CSV, tu peux regarder ce message.

Voilà quelques pistes.
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6872
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: Créer un graphique avec une série de points

Messagepar rebouxo » Jeudi 06 Novembre 2008, 12:03

pstricks-add permet de faire d'importer des fichiers de donner (éventuellement très grand) et d'en faire des représentations graphiques. reste juste à mettre ton fichier csv en forme : je ne sais pas si pstricks-add accepte les fichiers csv, mais bon, un rechercher remplacer fera le travail.

Olivier
rebouxo
Modérateur
 
Messages: 6888
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: Créer un graphique avec une série de points

Messagepar gigiair » Jeudi 06 Novembre 2008, 14:27

Tu peux voir du côté de pgf,

texdoc pgfmanual §64.2.2 a écrit:\pgfplotxyfile{ filename }
This command will try to open the file filename . If this succeeds, it will convert the file contents into a plot stream as follows: A \pgfplotstreamstart is issued. Then, each nonempty line of the file should start with two numbers separated by a space, such as 0.1 1 or 100 -.3. Anything following the numbers is ignored. Each pair x and y of numbers is converted into one plot stream point in the xy-coordinate system.


Tu peux facilement créer ton fichier avec n'importe quel tableur. exporter en texte simple, ou par un simple copier-coller pour produire un fichier texte au format kivabien. Le programme suivant affiche la courbe:

Code: Tout sélectionner
\documentclass[10pt,
%draft,
a4paper]{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{textcomp}
\usepackage[a4paper,pdftex,dvips]{geometry}
\usepackage{tikz}
\usepackage[frenchb]{babel}
\begin{document}

\begin{tikzpicture}
    \pgfplothandlerlineto
   \pgfplotxyfile{graph.txt}
   \pgfusepath{stroke}
\end{tikzpicture}
\end{document}


Avec un fichier graph.txt contenant

Code: Tout sélectionner
-2    4
 -1.8  3.24
 -1.6  2.56
 -1.4  1.96
 -1.2  1.44
-1 1
 -0.8  0.64
 -0.6  0.36
 -0.4  0.16
 -0.2  0.04
0        0
 0.2  0.04
 0.4  0.16
 0.6  0.36
 0.8  0.64
1      1
 1.2  1.44
 1.4  1.96
 1.6  2.56
 1.8  3.24
2     4


À toi d'y ajouter des axes et autres décorations.
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2364
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: Créer un graphique avec une série de points

Messagepar tehessin » Jeudi 06 Novembre 2008, 22:07

Que veux-tu faire des points : afficher un nuage ? un polygone ? effectuer une interpolation ?
tehessin
Hecto-utilisateur
 
Messages: 69
Inscription: Jeudi 22 Mai 2008, 12:54
Statut actuel: Actif et salarié | Enseignant

Re: Créer un graphique avec une série de points

Messagepar iznogoud » Jeudi 06 Novembre 2008, 22:23

Pile poil ce qu'il me faut Giglair :D C'est génial !!!

L'origine de mon Pb est le suivant, je récupère une série de coordonnées d'un logiciel de CAO correspondant à une longueur de transmission à cardan au cours d'une cinématique de pliage... Je vous passe les détails !!!
Je souhaite ajouter ces courbes dans mon rapport pour prouver que la transmission n'est pas trop solicitée par rapport aux données constructeur.

Je prend également bonne note de ton lien MB.

Encore merci
iznogoud
Déca-utilisateur
 
Messages: 36
Inscription: Mardi 04 Novembre 2008, 22:14
Localisation: Strasbourg
Statut actuel: Post-bac | Ecole d'ingénieur

Re: Créer un graphique avec une série de points

Messagepar iznogoud » Mardi 17 Février 2009, 15:11

Bonjour à tous,

Je reviens avec mon histoire de courbe. Je souhaite pouvoir déplacer l'origine de mon repère, et c'est la m**** !! (pardon , j'ai beaucoup cherché, mais pas trouvé...)

Je souhaite définir des variable de départ (Xmax, Ymax, Ymin et Xmin) pour ajuster au mieux mon graphique, mais le résultat est nul...
Ci-dessous mon code (inclus avec un \input) :

Code: Tout sélectionner
\begin{tikzpicture}[yscale=1,xscale=1]
%%Définition des limites du graph%%
\def\Xmax{10.5};
\def\Ymax{13.5};
\def\Xmin{0};
\def\Ymin{8};
\def\Xgrille{1};
\def\Ygrille{1};
\def\Xgrid{1};
\def\Ygrid{1};
\def\Lngmax{13.13};
\def\Lngmin{8.83};
\def\ticsize{1pt}

\draw[help lines,ystep=\Ygrille,xstep=\Xgrille] (\Xmin,\Ymin) grid (\Xmax,\Ymax); %Définition grille

\begin{scope} %définition repère

\foreach \x/\xtext in {\Xmin,\Xgrid,...,\Xmax}
\draw[xshift=\x cm,yshift=\Ymin cm] (\Xmin,\ticsize) -- (\Xmin,-\ticsize) node[below] {$\xtext$};

%\pgfmathparse{\Ygrid+\Ymin};
\foreach \y/\ytext in {\Ymin,\Ygrid + \Ymin,...,\Ymax}
\draw[yshift=\y cm - \Ymin cm] (\ticsize,\Ymin) -- (-\ticsize,\Ymin) node[left] {\y};
\end{scope}

\draw [->] (\Xmin,\Ymin) -> (\Xmax,\Ymin) node[right] {$t$} coordinate(x axis); %axe des X
\draw [->] (\Xmin,\Ymin) -> (\Xmin,\Ymax) node[above] {$longueur$} coordinate(y axis); %axe des y

\begin{scope}[blue,very thick,yshift=\y cm - \Ymin cm,y=0.01cm] % Lng Cardan
\draw plot file {pliage_lng.grp};
\end{scope}

\begin{scope}[purple,very thick] % Limite Lng Cardan
\draw [-] (0,\Lngmax) -- (\Xmax,\Lngmax);
\draw [-] (0,\Lngmin) -- (\Xmax,\Lngmin);
\end{scope}

\end{tikzpicture}


Le problème se pose lors de l'utilisation du \Ymin :evil:
Est-ce que Latex est en mesure de calculer quelque chose dans une commande ?

Pitié, dites moi que quelqu'un à déjà été confronté à ce genre de PB et a une solution...
iznogoud
Déca-utilisateur
 
Messages: 36
Inscription: Mardi 04 Novembre 2008, 22:14
Localisation: Strasbourg
Statut actuel: Post-bac | Ecole d'ingénieur

Re: Créer un graphique avec une série de points

Messagepar oleanet » Mardi 17 Février 2009, 15:48

iznogoud a écrit:Pitié, dites moi que quelqu'un à déjà été confronté à ce genre de PB et a une solution...


Utiliser TeXgraph? Ce serait sans doute trop facile :lol:
oleanet
Méga-utilisateur
 
Messages: 258
Inscription: Dimanche 24 Décembre 2006, 15:17

Re: Créer un graphique avec une série de points

Messagepar rebouxo » Mardi 17 Février 2009, 16:05

Oui, avec pstricks-add c'est très facile (enfin bien plus facile qu'avec TiKz, je trouve).

Es-tu allé voir ici et particulièrement la page 117 et les suivantes ?
Je n'ai rien contre TiKz mais comme c'est TeX qui fait tous les calculs et que TeX n'est guère doué pour ce jeu là...

Olivier
A line is a point that went for a walk. Paul Klee
Par solidarité, pas de MP
rebouxo
Modérateur
 
Messages: 6888
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: Créer un graphique avec une série de points

Messagepar pg » Mardi 17 Février 2009, 21:35

Ceci a l'air de fonctionner (j'ai dû enlver un \y qui se baladait en dehors d'une boucle, donc fait attention s'il te servait à quelque chose) :

Code: Tout sélectionner
\documentclass{article}

\usepackage{tikz}
\usepackage{xlop}

\newcommand*{\prettyprint}[1]{\opcopy{#1}{a}\opunzero{a}\opprint{a}}

\begin{document}

\begin{tikzpicture}[yscale=1,xscale=1]
%%Définition des limites du graph%%
\def\Xmax{10.5};
\def\Ymax{13.5};
\def\Xmin{1};
\def\Ymin{8};
\def\Xgrille{1};
\def\Ygrille{1};
\def\Xgrid{1};
\def\Ygrid{1};
\def\Lngmax{13.13};
\def\Lngmin{8.83};
\def\ticsize{1pt}

\draw[help lines,ystep=\Ygrille,xstep=\Xgrille] (\Xmin,\Ymin) grid (\Xmax,\Ymax); %Définition grille

\begin{scope} %définition repère

\pgfmathparse{\Xgrid+\Xmin}\let\Xstep\pgfmathresult
\foreach \x/\xtext in {\Xmin,\Xstep,...,\Xmax}
\draw[xshift=\x cm - \Xmin cm,yshift=\Ymin cm] (\Xmin,\ticsize) -- (\Xmin,-\ticsize) node[below] {$\prettyprint{\x}$};

\pgfmathparse{\Ygrid+\Ymin}\let\Ystep\pgfmathresult
\foreach \y in {\Ymin,\Ystep,...,\Ymax}
\draw[yshift=\y cm - \Ymin cm,xshift=\Xmin cm] (\ticsize,\Ymin) -- (-\ticsize,\Ymin) node[left] {$\prettyprint{\y}$};
\end{scope}

\draw [->] (\Xmin,\Ymin) -> (\Xmax,\Ymin) node[right] {$t$} coordinate(x axis); %axe des X
\draw [->] (\Xmin,\Ymin) -> (\Xmin,\Ymax) node[above] {$longueur$} coordinate(y axis); %axe des y

\begin{scope}[blue,very thick,yshift=-\Ymin cm,y=0.01cm] % Lng Cardan
\draw plot file {pliage_lng.grp};
\end{scope}

\begin{scope}[purple,very thick] % Limite Lng Cardan
\draw [-] (0,\Lngmax) -- (\Xmax,\Lngmax);
\draw [-] (0,\Lngmin) -- (\Xmax,\Lngmin);
\end{scope}

\end{tikzpicture}

\end{document}

(la commande \prettyprint{\x} permet d'imprimer la valeur de \x sans un éventuel zéro après la virgule)
pg
Modérateur
 
Messages: 2592
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Créer un graphique avec une série de points

Messagepar iznogoud » Mercredi 18 Février 2009, 17:05

Pg, je ne suis pas certain d'avoir tout compris dans ta solution, mais le résultat est parfait...

1000 fois merci :D :D
iznogoud
Déca-utilisateur
 
Messages: 36
Inscription: Mardi 04 Novembre 2008, 22:14
Localisation: Strasbourg
Statut actuel: Post-bac | Ecole d'ingénieur


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Baidu [Spider], Google [Bot], Grapeshot [Crawler] et 23 invités