Plot MultiAxes tutorial/fr: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
 
(90 intermediate revisions by 5 users not shown)
Line 1: Line 1:
<languages/>
Ensure to visit [[Plot_Basic_tutorial|basic tutorial]] before starting with this tutorial. In this tutorial we will learn how to create and edit a multiaxes plot. You can learn more about [[Plot_Module|Plot module here]].


{{TutorialInfo/fr
[[Image:Plot_MultiAxes_Example.png|600px|center|Multiaxes plot example]]
|Topic=Atelier Plot
<center><span style="font-variant:small-caps">Multiaxes plot example.</span></center>
|Level=Intermediaire
|Time=
|Author=
|FCVersion=0.19
|Files=
}}


Veuillez effectuer le [[Plot_Basic_tutorial/fr|tutoriel de base]] avant de commencer avec ce tutoriel. Dans ce didacticiel, nous allons apprendre à créer et à modifier un tracé multiaxes. Vous pouvez en savoir plus sur l'[[Plot_Workbench/fr|Atelier Plot ici]].
In previous image you can see the result that we aproximately will obtain. Following this tutorial you will learn:
* How to create a multiaxes Plot from Python Console.
* How to edit axes properties.
* How to control grid/legend when several axes is present.
* How to edit labels, titles and legend positions.


[[Image:Plot_MultiAxes_Example.png|600px]]
==Plotting data==
{{Caption|Exemple de tracé multiaxe}}
As we did in [[Plot_Basic_tutorial|previous tutorial]] we will use the Python console or [[Macros|macros]] in order to plot the data, with the difference that in this case we will plot the data in two different axes.


Dans l'image, vous pouvez voir le résultat que nous obtiendrons approximativement. En suivant ce tutoriel, vous apprendrez :
===Creating plot data===
* Comment créer un graphe multi-axes à partir de la [[Python_console/fr|console Python]].
In this example we will plot 3 functions, the two ones used in [[Plot_Basic_tutorial|previous tutorial]], and another polynomial one. The fact is that the polynomial one will need new axes due to the variation range is different from all others. Next commands will create data arrays for us:
* Comment éditer les propriétés des axes.
<syntaxhighlight>
* Comment contrôler la grille et la légende lorsque plusieurs ensembles d'axes sont présents.
import math
* Comment éditer la position des étiquettes, titres et légendes.
p = range(0,1001)
x = [2.0*xx/1000.0 for xx in p]
y = [xx**2.0 for xx in x]
t = [tt/1000.0 for tt in p]
s = [math.sin(math.pi*2.0*tt) for tt in t]
c = [math.cos(math.pi*2.0*tt) for tt in t]
</syntaxhighlight>
As ''x'' moves from 0 to 2, ''y'' function has a maximum value of 4, so if we try to plot this function with trigonometrical ones, at least one function will be truncated or bad scaled, then we need a multiaxes plot. Multiaxes plot in FreeCAD is oriented to get a plot with multiple axes, not to get multiple plots in same document.


<span id="Plotting_data"></span>
===Drawing functions, adding new axes===
==Traçage des données==
We will draw polynomial function at main axes. If all your axes will have same size then is not relevant what function is ploted in what axes, but if your plot has axes with other size (as in this example), main axes must be the biggest one (because this axes have the white background). In order to do it we only need to launch a command
<syntaxhighlight>
import Plot
Plot.plot(x,y,r"$x^2$")
</syntaxhighlight>
In this example we pass directly the series label for the legend. Note that the label string has the ''r'' prefix in order to avoid Python try to interpret special characters (''\'' symbol is used frecuently in [http://www.latex-project.org LaTeX] syntax).


Comme nous l'avons fait dans le [[Plot_Basic_tutorial/fr|tutoriel précédent]], nous allons utiliser la [[Python_console/fr|console Python]] ou des [[Macros/fr|macros]] pour tracer les données, mais dans ce cas, nous allons tracer les données en utilisant deux ensembles d'axes.
Now we can plot trigonometrical functions, creating new axes before. In [[Plot_Module|FreeCAD Plot module]] when you create new axes this axes are selected as active ones, so new plots will be associated to this axes.
<syntaxhighlight>
Plot.addNewAxes()
Plot.plot(t,s,r"$\sin\left( 2 \pi t \right)$")
Plot.plot(t,c,r"$\cos\left( 2 \pi t \right)$")
</syntaxhighlight>
As you can see you plot has gone crazy, with axes ticks overlaped, curves of same color, etc. Now we needs to use [[Plot_Module|FreeCAD Plot module]] to fix this graph.


<span id="Creating_plot_data"></span>
==Configuring plot==
===Création de données de tracé===


Dans cet exemple, nous allons tracer 3 fonctions, les deux utilisées dans le [[Plot_Basic_tutorial/fr|tutoriel précédent]] et une nouvelle fonction polynomiale. L'étendue de la fonction polynomiale est différente des autres fonctions, donc de nouveaux axes sont nécessaires. Les commandes suivantes vont créer les tableaux de données pour nous :
===Configuring axes===
[[Plot_Module|FreeCAD Plot module]] provides a tool in order to modify the properties of each axes.


{{Code|code=
[[Image:Plot_Axes.png‎|center|Axes configuration tool icon]]
import math
<center><span style="font-variant:small-caps">Axes configuration tool icon.</span></center>
p = range(0,1001)
x = [2.0*xx/1000.0 for xx in p]
y = [xx**2.0 for xx in x]
t = [tt/1000.0 for tt in p]
s = [math.sin(math.pi*2.0*tt) for tt in t]
c = [math.cos(math.pi*2.0*tt) for tt in t]
}}


Comme ''x'' se déplace de 0 à 2, la fonction ''y'' a une valeur maximale de 4, donc si nous essayons de tracer cette fonction avec les fonctions trigonométriques, au moins une fonction sera tronquée ou mal mise à l'échelle, donc nous avons besoin d'un tracé multi-axes. Un tracé multiaxe dans FreeCAD est destiné à obtenir un tracé avec plusieurs axes, et non à obtenir plusieurs tracés dans le même document.
The first thing that you can find in axes tool is the active axes selector. Since the active axes are the last one, active axes is placed at one. The axes tool, as labels tool, allows to set the active axes, allowing you to plot more data in the axes that you want (including add/remove axes). For the moment we will work over the selected axes, that are the associated to trigonometrical functions.


<span id="Drawing_functions,_adding_new_axes"></span>
In the dimensions sliders, we will move left horizontal and bottom vertical sliders (try to emulate example) in order to reduce axes size. Then we can set the axes alignement, changing it to top and right, and setting and small offset of two units.
===Fonctions de dessin, ajout de nouveaux axes===


Nous allons tracer les fonctions trigonométriques en utilisant les axes principaux. Si tous vos axes ont la même taille, il n'est pas important de savoir quelle fonction est tracée en premier. Mais si ce n'est pas le cas, la fonction qui utilise les plus grands axes, dans notre cas la fonction polynomiale, doit être tracée en dernier. La légende sera attachée au dernier système d'axes et il est plus pratique que ce soit le plus grand. Pour tracer les fonctions trigonométriques, il suffit de lancer quelques commandes.
===Configuring series===
Set series properties as we did in [[Plot_Basic_tutorial|previous tutorial]].


{{Code|code=
===Showing grid and legend===
try:
Grid and legend is shown and hide with the same tools that used in [[Plot_Basic_tutorial|previous tutorial]], but in this case the behaviour is a little bit different due to the presence of two different axes.
from FreeCAD.Plot import Plot
except ImportError:
from freecad.plot import Plot


Plot.plot(t,s,r"$\sin\left( 2 \pi t \right)$")
Regarding grid lines, you can show lines for each axes set, for example, if you try to show grid now you will show only the grid of the trigonometrical functions, so in order to show the grid of polynomial function plot you needs to change active axes to 0 (using axes configuration tool) before using grid tool another time (Is possible that you need to press two times the tool).
Plot.plot(t,c,r"$\cos\left( 2 \pi t \right)$")
}}


Dans cet exemple, nous transmettons directement les étiquettes des séries pour la légende. Notez que les chaînes d'étiquettes ont le préfixe ''r'' afin d'empêcher Python d'essayer d'interpréter des caractères spéciaux (le symbole ''\'' est fréquemment utilisé dans la syntaxe [http://www.latex-project.org LaTeX]).
Regarding legend, the legend will be the same for both axes, so you can choose the axes that you want in order to show the legend, but is strongly recommended to use the biggest ones (0 in this example) because position will be refered to this axes coordinates. If you show the legend you can see that is really bad placed, we will fix this problem later.


Avant de pouvoir tracer la fonction polynomiale, nous devons créer de nouveaux axes. Dans l'[[Plot_Workbench/fr|atelier Plot]], les nouveaux axes sont automatiquement sélectionnés comme axes actifs et les nouveaux tracés seront associés à ces axes.
===Setting axes labels===

You can set axes labels with same tool used in [[Plot_Basic_tutorial|previous tutorial]], with the difference that now you have more axes. Since axes labels is ussually set as one per axis, is not a significant difference, but [[Plot_Module|FreeCAD Plot module]] allow you to set a title by axes too. In this case we only wants to set title to main axes, so set:
{{Code|code=
Plot.addNewAxes()
Plot.plot(x,y,r"$x^2$")
}}

Comme vous pouvez le constater, votre graphique est devenu fou, avec des repères d'axes qui se chevauchent, des courbes de la même couleur, etc. Nous devons maintenant utiliser l'[[Plot_Workbench/fr|atelier Plot]] pour corriger ce graphique.

<span id="Configuring_plot"></span>
==Configurer Plot==

<span id="Configuring_axes"></span>
===Configurer les axes===

L'[[Plot_Workbench/fr|atelier Plot]] fournit un outil permettant de modifier les propriétés des axes.

[[Image:Plot_Axes.svg‎]]
{{Caption|Icône de l'outil de configuration des axes}}

Avec l'outil [[Plot_Axes/fr|axes]], vous pouvez ajouter ou supprimer des axes, et définir les axes actifs, qui seront ensuite utilisés si vous tracer d'autres données.

Pour modifier la taille du premier ensemble d'axes, associé aux fonctions trigonométriques, il faut d'abord l'activer en faisant passer les axes actifs de 1 à 0. Nous pouvons ensuite déplacer les curseurs de dimension horizontale et verticale pour réduire sa taille (essayez d'imiter l'exemple). Nous devons également modifier l'alignement des axes : sélectionnez respectivement haut et droite.

<span id="Configuring_series"></span>
===Configurer les séries===

Définissez les propriétés de la série comme nous l'avons fait dans le [[Plot_Basic_tutorial/fr|tutoriel précédent]].

<span id="Showing_grid_and_legend"></span>
===Affichage de la grille et de la légende===

La [[Plot_Grid/fr|grille]] et la [[Plot_Legend/fr|légende]] peuvent être affichées, et masquées, avec les outils déjà décrits dans le [[Plot_Basic_tutorial/fr|tutoriel précédent]] mais dans ce cas le comportement est un peu différent car il y a deux ensembles d'axes.

Les lignes de la grille sont ajoutées à l'ensemble des axes actifs. Pour ajouter des lignes au deuxième ensemble d'axes dans notre exemple, il faut d'abord l'activer en faisant passer les axes actifs de 0 à 1 dans l'outil [[Plot_Axes/fr|axes]].

Comme déjà mentionné, la légende sera positionnée par rapport aux derniers axes définis. Si vous montrez la légende maintenant, vous verrez qu'elle est vraiment mal placée mais nous corrigerons cela plus tard.

<span id="Setting_axes_labels"></span>
===Définir les étiquettes des axes===

Lorsqu'il s'agit de définir les [[Plot_Labels/fr|étiquettes]] des axes, nous devons à nouveau composer avec nos deux ensembles d'axes. Mais comme les étiquettes sont généralement définies pour tous les axes, la procédure est la même que celle décrite dans le [[Plot_Basic_tutorial/fr|tutoriel précédent]]. L'[[Plot_Workbench/fr|atelier Plot]] vous permet de définir un titre par ensemble d'axes. Dans ce cas, nous voulons seulement définir un titre pour le dernier ensemble d'axes, le plus grand.


'''Axes 0:'''
'''Axes 0:'''
* Title = Multiaxes example
* X Label = $x$
* Y Label = $\mathrm{f} \left( x \right)$
'''Axes 1:'''
* X Label = $t$
* X Label = $t$
* Y Label = $\mathrm{f} \left( t \right)$
* Y Label = $\mathrm{f} \left( t \right)$
'''Axes 1:'''
* Title = Exemple multiaxes
* X Label = $x$
* Y Label = $\mathrm{f} \left( x \right)$


Modifiez la taille de la police de toutes les étiquettes à 20, et celle du titre à 24. Encore une fois, il y a un élément, le titre, qui est mal placé.
Set also 20 to fontsize for all but title, that uses a fontsize of 24. As happens with legend, title is bad placed, interseting with second axes set, so we need to solve both problems.


<span id="Setting_elements_position"></span>
===Setting elements position===
===Définir la position des éléments===
[[Plot_Module|FreeCAD Plot module]] provides a tool in order to set the position of several plot elements, as titles, labels or legend.


L'[[Plot_Workbench/fr|atelier Plot]] fournit un outil permettant de modifier la position de plusieurs éléments de tracé, tels que les titres, les étiquettes et les légendes.
[[Image:Plot_Positions.png‎|center|Position editor icon]]
<center><span style="font-variant:small-caps">Position editor icon.</span></center>


[[Image:Plot_Positions.svg]]
When you run the tool you see a list with all the editable elements. Title elements, as well as legend, can be moved in both directions, since axes labels can be moved only on the axes direction. Select title of axes 0 and move it to (0.24,1.01), then select legend and move it to a better position. You can increase legend labels fontsize too.
{{Caption|Icône de l'éditeur de position}}


Lorsque vous exécutez l'outil, vous verrez une liste de tous les éléments modifiables. Les titres et les légendes peuvent être déplacés dans les deux sens, mais les étiquettes d'axe ne peuvent être déplacées que le long de l'axe auquel elles appartiennent. Sélectionnez le titre de l'axe 1 et déplacez-le vers (0,24,1,01), puis sélectionnez la légende et déplacez-la vers une meilleure position. Vous pouvez également augmenter la taille de la police des étiquettes de la légende.
==Saving plot==
Now you can save your work. See [[Plot_Basic_tutorial|previous tutorial]] if you don't remeber how to do it.


<span id="Saving_plot"></span>
[[Category:Tutorials]]
==Sauvegarder un fichier Plot==


Vous pouvez maintenant enregistrer votre travail. Voir le [[Plot_Basic_tutorial/fr|tutoriel précédent]] si vous ne savez pas comment faire.



{{clear}}
{{Plot_Tools_navi{{#translation:}}}}
<languages/>
{{Userdocnavi{{#translation:}}}}
[[Category:External_Workbenches{{#translation:}}]]
[[Category:Addons{{#translation:}}]]

Latest revision as of 12:59, 14 April 2023

Tutoriel
Thème
Atelier Plot
Niveau
Intermediaire
Temps d'exécution estimé
Auteurs
Version de FreeCAD
0.19
Fichiers exemples
Voir aussi
None

Veuillez effectuer le tutoriel de base avant de commencer avec ce tutoriel. Dans ce didacticiel, nous allons apprendre à créer et à modifier un tracé multiaxes. Vous pouvez en savoir plus sur l'Atelier Plot ici.

Exemple de tracé multiaxe

Dans l'image, vous pouvez voir le résultat que nous obtiendrons approximativement. En suivant ce tutoriel, vous apprendrez :

  • Comment créer un graphe multi-axes à partir de la console Python.
  • Comment éditer les propriétés des axes.
  • Comment contrôler la grille et la légende lorsque plusieurs ensembles d'axes sont présents.
  • Comment éditer la position des étiquettes, titres et légendes.

Traçage des données

Comme nous l'avons fait dans le tutoriel précédent, nous allons utiliser la console Python ou des macros pour tracer les données, mais dans ce cas, nous allons tracer les données en utilisant deux ensembles d'axes.

Création de données de tracé

Dans cet exemple, nous allons tracer 3 fonctions, les deux utilisées dans le tutoriel précédent et une nouvelle fonction polynomiale. L'étendue de la fonction polynomiale est différente des autres fonctions, donc de nouveaux axes sont nécessaires. Les commandes suivantes vont créer les tableaux de données pour nous :

import math
p = range(0,1001)
x = [2.0*xx/1000.0 for xx in p]
y = [xx**2.0 for xx in x]
t = [tt/1000.0 for tt in p]
s = [math.sin(math.pi*2.0*tt) for tt in t]
c = [math.cos(math.pi*2.0*tt) for tt in t]

Comme x se déplace de 0 à 2, la fonction y a une valeur maximale de 4, donc si nous essayons de tracer cette fonction avec les fonctions trigonométriques, au moins une fonction sera tronquée ou mal mise à l'échelle, donc nous avons besoin d'un tracé multi-axes. Un tracé multiaxe dans FreeCAD est destiné à obtenir un tracé avec plusieurs axes, et non à obtenir plusieurs tracés dans le même document.

Fonctions de dessin, ajout de nouveaux axes

Nous allons tracer les fonctions trigonométriques en utilisant les axes principaux. Si tous vos axes ont la même taille, il n'est pas important de savoir quelle fonction est tracée en premier. Mais si ce n'est pas le cas, la fonction qui utilise les plus grands axes, dans notre cas la fonction polynomiale, doit être tracée en dernier. La légende sera attachée au dernier système d'axes et il est plus pratique que ce soit le plus grand. Pour tracer les fonctions trigonométriques, il suffit de lancer quelques commandes.

try:
    from FreeCAD.Plot import Plot
except ImportError:
    from freecad.plot import Plot

Plot.plot(t,s,r"$\sin\left( 2 \pi t \right)$")
Plot.plot(t,c,r"$\cos\left( 2 \pi t \right)$")

Dans cet exemple, nous transmettons directement les étiquettes des séries pour la légende. Notez que les chaînes d'étiquettes ont le préfixe r afin d'empêcher Python d'essayer d'interpréter des caractères spéciaux (le symbole \ est fréquemment utilisé dans la syntaxe LaTeX).

Avant de pouvoir tracer la fonction polynomiale, nous devons créer de nouveaux axes. Dans l'atelier Plot, les nouveaux axes sont automatiquement sélectionnés comme axes actifs et les nouveaux tracés seront associés à ces axes.

Plot.addNewAxes()
Plot.plot(x,y,r"$x^2$")

Comme vous pouvez le constater, votre graphique est devenu fou, avec des repères d'axes qui se chevauchent, des courbes de la même couleur, etc. Nous devons maintenant utiliser l'atelier Plot pour corriger ce graphique.

Configurer Plot

Configurer les axes

L'atelier Plot fournit un outil permettant de modifier les propriétés des axes.

Icône de l'outil de configuration des axes

Avec l'outil axes, vous pouvez ajouter ou supprimer des axes, et définir les axes actifs, qui seront ensuite utilisés si vous tracer d'autres données.

Pour modifier la taille du premier ensemble d'axes, associé aux fonctions trigonométriques, il faut d'abord l'activer en faisant passer les axes actifs de 1 à 0. Nous pouvons ensuite déplacer les curseurs de dimension horizontale et verticale pour réduire sa taille (essayez d'imiter l'exemple). Nous devons également modifier l'alignement des axes : sélectionnez respectivement haut et droite.

Configurer les séries

Définissez les propriétés de la série comme nous l'avons fait dans le tutoriel précédent.

Affichage de la grille et de la légende

La grille et la légende peuvent être affichées, et masquées, avec les outils déjà décrits dans le tutoriel précédent mais dans ce cas le comportement est un peu différent car il y a deux ensembles d'axes.

Les lignes de la grille sont ajoutées à l'ensemble des axes actifs. Pour ajouter des lignes au deuxième ensemble d'axes dans notre exemple, il faut d'abord l'activer en faisant passer les axes actifs de 0 à 1 dans l'outil axes.

Comme déjà mentionné, la légende sera positionnée par rapport aux derniers axes définis. Si vous montrez la légende maintenant, vous verrez qu'elle est vraiment mal placée mais nous corrigerons cela plus tard.

Définir les étiquettes des axes

Lorsqu'il s'agit de définir les étiquettes des axes, nous devons à nouveau composer avec nos deux ensembles d'axes. Mais comme les étiquettes sont généralement définies pour tous les axes, la procédure est la même que celle décrite dans le tutoriel précédent. L'atelier Plot vous permet de définir un titre par ensemble d'axes. Dans ce cas, nous voulons seulement définir un titre pour le dernier ensemble d'axes, le plus grand.

Axes 0:

  • X Label = $t$
  • Y Label = $\mathrm{f} \left( t \right)$

Axes 1:

  • Title = Exemple multiaxes
  • X Label = $x$
  • Y Label = $\mathrm{f} \left( x \right)$

Modifiez la taille de la police de toutes les étiquettes à 20, et celle du titre à 24. Encore une fois, il y a un élément, le titre, qui est mal placé.

Définir la position des éléments

L'atelier Plot fournit un outil permettant de modifier la position de plusieurs éléments de tracé, tels que les titres, les étiquettes et les légendes.

Icône de l'éditeur de position

Lorsque vous exécutez l'outil, vous verrez une liste de tous les éléments modifiables. Les titres et les légendes peuvent être déplacés dans les deux sens, mais les étiquettes d'axe ne peuvent être déplacées que le long de l'axe auquel elles appartiennent. Sélectionnez le titre de l'axe 1 et déplacez-le vers (0,24,1,01), puis sélectionnez la légende et déplacez-la vers une meilleure position. Vous pouvez également augmenter la taille de la police des étiquettes de la légende.

Sauvegarder un fichier Plot

Vous pouvez maintenant enregistrer votre travail. Voir le tutoriel précédent si vous ne savez pas comment faire.