Plot : Tutoriel graphique à plusieurs axes
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
Configuration des axes
L'atelier Plot fournit un outil permettant de modifier les propriétés des axes.
La première chose que vous trouverez dans l'outil, Plot_Axes, est le sélecteur d'axes actif. Pour l'instant, nous allons travailler sur l'ensemble des axes 1, la dernière chose que nous générons
Puisque les axes actifs sont les derniers, les axes actifs sont placés en premier.
L'outil axes, comme l'outil Plot_Labels, permettent de définir les axes actifs, et, permettent de tracer plus de données dans l'axe que vous souhaitez (y compris ajouter/supprimer des axes). Pour l'instant, nous allons travailler sur les axes sélectionnés, et, qui sont associés aux fonctions trigonométriques.
Utilisez les ascenseurs pour modifier les réglages, déplaçons le curseur gauche pour les réglages horizontaux, et, le curseur du bas pour les réglages verticaux (essayez d'imiter l'exemple) afin de réduire la taille des axes.
Nous pouvons alors définir l'alignement des axes, et, changer en haut, et, à droite, en définissant un petit décalage de deux unités.
Configuring series
Configurer les Series
Pour définir les propriétés des Plot_Series que nous avons fait, regardez dans Tutoriel.
Showing grid and legend
Afficher la grille et les légendes
Les Plot_Grid (grilles), et, les Plot_Legend (légendes) apparaissent cachées avec les mêmes outils utilisés dans le tutoriel, mais dans ce cas, le comportement est un peu différent, en raison de la présence de deux axes différents.
Concernant les lignes de la grille, vous pouvez, afficher les lignes pour chaque ensemble d'axes, par exemple, si vous essayez d'afficher une grille maintenant vous montrerez uniquement la grille des fonctions trigonométriques, donc afin de montrer la grille du tracé de la fonction polynôme, vous avez besoin de mettre les axes actifs à 0 (en utilisant l'outil de configuration des Plot_Axes), pour utiliser l'outil Plot_Grid une autre fois (il faut appuyer une deuxième fois sur l'outil).
Au sujet de la légende (Plot_Legend), la légende sera la même pour les deux axes, vous pouvez donc choisir les axes que vous souhaitez, afin d'afficher la légende (Plot_Legend), mais il est fortement recommandé, d'utiliser les plus grands (0 dans cet exemple), parce que la position sera référée, à cet axe de coordonnées.
Il est possible que vous affichiez une légende, et, que cette légende soit très mal placée, patientez un peu, ce problème sera résolu plus tard.
Setting axes labels
Définition des étiquettes axiales
Vous pouvez définir des étiquettes, et, des axes avec le même outil, utilisé dans previous Tutoriel, à la différence près, que maintenant vous avez plus d'axes.
Les étiquettes utilisées sur les axes, sont habituellement, une par axe, il n'y a pas de différence significative, mais le Module Plot de FreeCAD permet de définir un titre en plus par axe.
Dans cet exemple nous ne ne mettons un titre, qu'aux axes principaux, alors la valeur :
Axes 0:
- Title = Multiaxes example
- X Label = $x$
- Y Label = $\mathrm{f} \left( x \right)$
Axes 1:
- X Label = $t$
- Y Label = $\mathrm{f} \left( t \right)$
La valeur de la police est 20 pour tous, sauf le titre, qui utilise une valeur de police de 24.
Que se passe-t-il avec la légende, et, le titre mal placé, intersection avec le deuxième ensemble d'axes, donc nous devons résoudre ces deux problèmes.
Setting elements position
Définition de la position des éléments
FreeCAD Plot module fournit un outil pour définir la position de plusieurs éléments, comme, les titres (Series), les labels, ou la légende.
Lorsque vous exécutez l'outil, vous voyez une liste, avec tous les éléments modifiables.
Les éléments de titres, ainsi que les légendes, peuvent être déplacés dans les deux sens, les étiquettes des axes, ne peuvent être déplacées uniquement sur l'orientation des axes.
Sélectionnez le titre des axes 0, et, déplacez-le vers (0.24,1.01), puis sélectionnez la légende, et, déplacez-le dans une meilleure position. Vous pouvez augmenter la dimension de la police.
Sauvegarder un fichier Plot
Vous pouvez maintenant enregistrer votre travail. Voir tutoriel précédent si vous ne savez pas comment faire.
- Démarrer avec FreeCAD
- Installation : Téléchargements, Windows, Linux, Mac, Logiciels supplémentaires, Docker, AppImage, Ubuntu Snap
- Bases : À propos de FreeCAD, Interface, Navigation par la souris, Méthodes de sélection, Objet name, Préférences, Ateliers, Structure du document, Propriétés, Contribuer à FreeCAD, Faire un don
- Aide : Tutoriels, Tutoriels vidéo
- Ateliers : Std Base, Arch, Assembly, CAM, Draft, FEM, Inspection, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test