version 6.0 (Modifiée)
Cette section propose des exemples pratiques de création de graphes à l'aide des commandes et fonctions de 4D Chart, à partir des enregistrements contenus dans la base de données.
Si vous souhaitez créer des graphes par programmation à partir de données placées dans des tableaux, reportez-vous à la section Créer des graphes à partir de tableaux (exemples).
Les exemples suivants contiennent des exemples de création de graphes à deux et trois dimensions, en utilisant les fonctions ch_Selection vers graphe et ch_Donnees vers graphe.
Pour chaque exemple, vous trouverez :
Une description de la situation prise comme exemple,
La structure de la base de données de l'exemple,
Un graphe créé par méthode avec des données de l'exemple,
Le code utilisé pour créer le graphe de l'exemple.
Créer un graphe à deux dimensions avec les séries définies par des champs
Supposons que vous possédiez une société d'édition de logiciels avec des clients dans divers secteurs : gouvernement, éducation, détail. Votre base de données suit les clients et les ventes.
Pour assurer le suivi de votre base de clientèle afin de déterminer votre politique produits et marketing, vous voulez savoir combien de logiciels ont été vendus aux clients de chaque secteur.
La table a été simplifiée pour l'exemple.
Avec 4D Chart, vous produisez le graphe suivant qui illustre le pourcentage de chaque secteur par rapport aux ventes totales.
Voici le code de la méthode PROFIL CLIENT, utilisée pour créer le graphe exemple.
`Méthode : PROFIL CLIENT `Catégories : Type de client (groupé), Valeurs : Nombre d'unités achetées C_ENTIER LONG($Gauche;$Haut;$Droite;$Bas) C_ENTIER LONG($Gauche2;$Haut2;$Droite2;$Bas2) C_ENTIER LONG($Zone;$Chart;$Titre;$Position) `Générer la sélection des enregistrements à représenter TOUT SELECTIONNER([DonnéesClients]) `Tableau des champs contenant les données Valeurs `Le nombre de catégories dans ce tableau est égal au nombre de séries TABLEAU ENTIER LONG($mesRub;1) $mesRub{1}:=Champ(->[DonnéesClients]NbreUnités) `Ouvrir une fenêtre externe pour afficher le graphe $Zone:=Creer fenetre externe(2;40;550;400;8;"Mon graphe";"_4D Chart") `Créer un graphe en secteurs $Chart:=ch_Selection vers graphe ($Zone;6;1;1;Table(->[DonnéesClients]);2;$mesRub) `Définir la position de la légende (en bas, horizontale) ch_FIXER ATTRIBUTS LEGENDE ($Zone;$Chart;1;0;0;0;8;0;0) `Ajouter un titre de graphe dans l'angle supérieur gauche $Titre:=ch_Creer texte ($Zone;1;1;210;3;"Distribution client par secteur") `Formater le titre du graphe (Palatino, 14 points, Gras, Centré, Noir) ch_FIXER TEXTE($Zone;$Titre;ch_Numero de police("Palatino");14; 1;ch_Index vers couleur(16);1) `Obtenir la limite de zone pour centrer les objets dans la zone ch_LIMITES ZONE ($Zone;1;$Gauche;$Haut;$Droite;$Bas) `Centrer le graphe ch_LIRE LIMITES ($Zone;$Chart;$Gauche2;$Haut2;$Droite2;$Bas2) $Position:=(($Droite-$Gauche)-($Droite2-$Gauche2))/2 ch_DEPLACER ($Zone;$Chart;$Position;$Haut2) `Centrer le titre ch_LIRE LIMITES ($Zone;$Titre;$Gauche2;$Haut2;$Droite2;$Bas2) $Position:=(($Droite-$Gauche)-($Droite2-$Gauche2))/2 ch_DEPLACER ($Zone;$Titre;$Position;$Haut2) `Déplacer le graphe de 9 points vers le bas, afin qu'il apparaisse au-dessous du titre ch_LIRE LIMITES ($Zone;$Chart;$Gauche;$Haut;$Droite;$Bas) ch_DEPLACER ($Zone;$Chart;$Gauche;$Haut+9)
Créer un graphe à trois dimensions avec les séries définies par des champs
Supposons que, désireux d'acheter une nouvelle voiture, vous utilisiez une base de données pour faire votre choix. Votre dernière liste comprend cinq voitures dont vous voulez comparer le coût dans trois domaines : carte grise, assurance et maintenance.
La structure de votre base de données est la suivante :
Pour analyser les informations recueillies, vous décidez de les représenter dans un graphe à trois dimensions. A l'aide de 4D Chart, vous produisez le graphe suivant :
Ce graphe a été créé avec la méthode GRAPH CARS. Cette méthode utilise la commande ch_Selection vers graphe. Lorsque vous utilisez ch_Selection vers graphe, vous lui transmettez un tableau de champs. Les noms des champs deviennent les noms de séries et les valeurs contenues dans les champs sont représentées sur l'axe des valeurs. Dans cet exemple, les champs CarteGrise, Assurance et Maintenance ont été utilisés pour les séries et les valeurs.
Voici le code de la méthode GRAPH CARS.
`Méthode : GRAPH CARS `Catégories : Type de voiture, Séries : Catégories de dépenses, Valeurs : Dépense en francs C_ENTIER LONG($Gauche;$Haut;$Droite;$Bas) C_ENTIER LONG(Zone;$Chart;$Titre;$Position;$i) C_ENTIER LONG($Gauche2;$Haut2;$Droite2;$Bas2) `Générer la sélection des enregistrements à représenter graphiquement TOUT SELECTIONNER([Dépenses]) TRIER([Dépenses];[Dépenses]Coût;>) `Remplir le tableau des enregistrements pour les données séries et valeurs TABLEAU ENTIER LONG($mesRub;3) $mesRub{1}:=Champ(->[Dépenses]CarteGrise) $mesRub{2}:=Champ(->[Dépenses]Maintenance) $mesRub{3}:=Champ(->[Dépenses]Assurance) `Cacher les éléments d'interface ch_FIXER AFFICHAGE (Zone;1;0) `Cacher les menus ch_FIXER AFFICHAGE (Zone;2;0) `Cacher les outils graphiques ch_FIXER AFFICHAGE (Zone;3;0) `Cacher les outils de tracé ch_FIXER AFFICHAGE (Zone;6;0) `Cacher les barres de défilement ch_FIXER AFFICHAGE (Zone;9;0) `Cacher les règles `Créer un graphe en colonnes $Chart:=ch_Selection vers graphe (Zone;100;2;1;Table(->[Dépenses]);1;$mesRub) `Fixer l'échelle ch_FIXER ECHELLE DE REELS (Zone;$Chart;0;0;0;0;0;3000;500;100) `Ne pas afficher la légende ch_FIXER ATTRIBUTS LEGENDE (Zone;$Chart;0;0;-1;-1;0;0;0) `Ajouter les titres du graphe ch_FIXER TITRE (Zone;$Chart;0;3;0;"Modèle") ch_FIXER TITRE (Zone;$Chart;1;0;0;"") `Ne pas afficher ch_FIXER TITRE (Zone;$Chart;2;2;3;"Dépense (en francs)") `Ajouter un titre dans l'angle supérieur gauche $Titre:=ch_Creer texte (Zone;1;1;300;3;"Rapport annuel") `Formater le titre (Palatino, 14 points, Gras, Centré, Noir) $Couleur:=ch_Index vers couleur (16) $Police:=ch_Numero de police ("Palatino") ch_FIXER TEXTE (Zone;$Titre;$Police;14;1;$Couleur;1) `Définir vert comme couleur 1ère série $Couleur:=ch_Index vers couleur (10) ch_FIXER TRAMAGE GRAPHE (Zone;$Chart;8;100;3;$Couleur) `Définir jaune comme couleur 2e série $Couleur:=ch_Index vers couleur (2) ch_FIXER TRAMAGE GRAPHE (Zone;$Chart;8;200;3;$Couleur) `Définir rouge comme couleur 3e série $Couleur:=ch_Index vers couleur (4) ch_FIXER TRAMAGE GRAPHE (Zone;$Chart;8;300;3;$Couleur) `Définir les attributs de tramage pour les rectangles du tracé $Couleur:=ch_Index vers couleur (8) Boucle ($i;1;3) ch_FIXER TRAMAGE GRAPHE (Zone;$Chart;1;$i;5;$Couleur) Fin de boucle `Définir les libellés des attributs de texte (Palatino, 9 points, gras italique) $Police:=ch_Numero de police ("Palatino") Boucle ($i;0;2) ch_FIXER TEXTE GRAPHE (Zone;$Chart;4;$i;$Police;9;3;-1) Fin de boucle `Définir les attributs pour les titres (Palatino, 12 points, gras) $Police:=ch_Numero de police ("Palatino") Boucle ($i;0;2) ch_FIXER TEXTE GRAPHE (Zone;$Chart;5;$i;$Police;14;1;-1) Fin de boucle `Définir les dimensions de zone pour le centrage ch_LIMITES ZONE (Zone;1;$Gauche;$Haut;$Droite;$Bas) `Centrer le graphe ch_LIRE LIMITES (Zone;$Chart;$Gauche2;$Haut2;$Droite2;$Bas2) $Position:=(($Droite-$Gauche)-($Droite2-$Gauche2))/2 ch_DEPLACER (Zone;$Chart;$Position;$Haut2) `Centrer le titre ch_LIRE LIMITES (Zone;$Titre;$Gauche2;$Haut2;$Droite2;$Bas2) $Position:=(($Droite-$Gauche)-($Droite2-$Gauche2))/2 ch_DEPLACER (Zone;$Titre;$Position;$Haut2) `Déplacer le graphe de 9 points vers le bas ch_LIRE LIMITES (Zone;$Chart;$Gauche;$Haut;$Droite;$Bas) ch_DEPLACER (Zone;$Chart;$Gauche;$Haut+9)
Créer un graphe à deux dimensions avec les séries définies par des données contenues dans des enregistrements
Supposons que, Directeur régional d'un programme éducatif, vous vouliez comparer les scores de tests standardisés des élèves de chaque département dans votre région et à différentes dates de test.
Votre base de données contient les scores des élèves de votre région, avec indication de la date du test et du département de résidence.
En utilisant 4D Chart, créez le graphe suivant :
Ce graphe a été créé par la méthode GRAPH 2D SCORES. Voici le code de cette méthode :
`Méthode : GRAPH 2D SCORES `Catégories : Dates des tests, Séries : Départements, Valeurs : Scores C_ENTIER LONG($Gauche;$Haut;$Droite;$Bas) C_ENTIER LONG($Gauche2;$Haut2;$Droite2;$Bas2) C_ENTIER LONG(Zone;$Chart;$Titre;$Position;$Score;$Couleur;$Police;$Rect) TOUT SELECTIONNER([Scores]) TRIER([Scores];[Scores]Date Test;>) `Cacher les éléments d'interface ch_FIXER AFFICHAGE (Zone;1;0) `Cacher les menus ch_FIXER AFFICHAGE (Zone;2;0) `Cacher les outils graphiques ch_FIXER AFFICHAGE (Zone;3;0) `Cacher les outils de tracé ch_FIXER AFFICHAGE (Zone;9;0) `Cacher les règles `Créer un graphe en colonnes 2D $Chart:=ch_Donnees vers graphe (Zone;2;1;1;1;Table(»[Scores]);2;4;3) `Le transformer en graphe horizontal (à barres) TABLEAU ENTIER LONG($aOptions;4) $aOptions{1}:=1 `Orientation : horizontale $aOptions{2}:=0 `Non empilé $aOptions{3}:=0 `Pas de chevauchement $aOptions{4}:=50 `Intervalle = 50% ch_FIXER OPTIONS (Zone;$Chart;$aOptions) `Montrer les titres des axes ch_FIXER TITRE (Zone;$Chart;0;2;3;"Date des tests") ch_FIXER TITRE (Zone;$Chart;2;3;0;"Score moyen (en points)") `Formater le titre de l'axe des éléments (Palatino, Vert, Gras, 12 points) $Couleur:=ch_Index vers couleur (9) $Police:=ch_Numero de police ("Palatino") ch_FIXER TEXTE GRAPHE (Zone;$Chart;5;0;$Police;12;1;$Couleur) `Formater le titre de l'axe des valeurs (Helvetica, Rouge, Gras Italique, 12 points) $Couleur:=ch_Index vers couleur (4) $Police:=ch_Numero de police ("Helvetica") ch_FIXER TEXTE GRAPHE (Zone;$Chart;5;2;$Police;12;3;$Couleur) `Définir la position de la légende en bas au centre, orientation horizontale ch_FIXER ATTRIBUTS LEGENDE (Zone;$Chart;1;0;0;0;8;0;0) `Ajouter un titre de graphe dans l'angle supérieur gauche $Titre:=ch_Creer texte (Zone;1;1;350;3;"Scores en fonction des départements") `Formater le titre du graphe (Geneva, 14 points, Gras, Centré, Bleu) $Couleur:=ch_Index vers couleur (7) $Police:=ch_Numero de police ("Geneva") ch_FIXER TEXTE (Zone;$Titre;$Police;14;1;$Couleur;1) `Obtenir les dimensions de la fenêtre à utiliser pour le centrage ch_LIMITES ZONE (Zone;1;$Gauche;$Haut;$Droite;$Bas) `Redimensionner le graphe à la taille de la fenêtre moins 50 points ch_MODIFIER TAILLE (Zone;$Chart;$Droite-50;$Bas-50) `Centrer le graphe horizontalement ch_LIRE LIMITES (Zone;$Chart;$Gauche2;$Haut2;$Droite2;$Bas2) $Position:=(($Droite-$Gauche)-($Droite2-$Gauche2))/2 ch_DEPLACER (Zone;$Chart;$Position;$Haut2) `Centrer le titre horizontalement ch_LIRE LIMITES (Zone;$Titre;$Gauche2;$Haut2;$Droite2;$Bas2) $Position:=(($Droite-$Gauche)-($Droite2-$Gauche2))/2 ch_DEPLACER (Zone;$Titre;$Position;$Haut2) `Déplacer le graphe de 10 points vers le bas à partir du titre ch_LIRE LIMITES (Zone;$Chart;$Gauche;$Haut;$Droite;$Bas) ch_DEPLACER (Zone;$Chart;$Gauche;$Haut+10) `Encadrer le graphe et le titre d'un rectangle gris $Rect:=ch_Creer rectangle (Zone;$Gauche-2;$Haut2-2;$Droite+2;$Bas+2+10;0) ch_FIXER TRAMAGE (Zone;$Rect;3;ch_Index vers couleur (13)) ch_FIXER TRAIT (Zone;$Rect;3;ch_Index vers couleur (15);1) `Centrer tous les objets verticalement ch_LIMITES ZONE (Zone;1;$Gauche;$Haut;$Droite;$Bas) ch_LIRE LIMITES (Zone;-1;$Gauche2;$Haut2;$Droite2;$Bas2) $Position:=(($Bas-$Haut)-($Bas2-$Haut2))/2 ch_DEPLACER (Zone;-1;$Gauche2;$Position) `Envoyer le rectangle à l'arrière ch_SELECTIONNER (Zone;-1;0) `Désélectionner tout ch_SELECTIONNER (Zone;$Rect;1) `Sélectionner le rectangle ch_EXECUTER MENU (Zone;24002) `Envoyer à l'arrière ch_SELECTIONNER (Zone;-1;0) `Désélectionner tout
Créer un graphe à trois dimensions avec les séries définies par les données contenues dans des enregistrements
Supposons que vous vouliez comparer les performances des actions de votre société à d'autres. Vous pourriez enregistrer la valeur de clôture quotidienne de l'action de chaque société dans une base de données 4e Dimension. Dans la base de données exemple, les valeurs des actions sont enregistrées sous la forme de moyennes mensuelles.
Le graphe suivant compare la valeur de Chimie Durand à la moyenne de l'industrie. Les données du graphe proviennent directement de la base de données, sans aucune manipulation.
La méthode GRAPH STOCKS génère le graphe en utilisant des valeurs de champs tirées directement de la base de données. Comme ces valeurs constituent déjà des moyennes, aucun calcul supplémentaire n'est nécessaire. Si vous enregistriez les valeurs quotidiennement, vous devriez calculer les moyennes mensuelles, les stocker dans un tableau, puis créer le graphe à l'aide de la fonction ch_Tableaux vers graphe.
Pour consulter un exemple de calcul de moyennes de valeurs mensuelles, reportez-vous à la section Créer des graphes à partir de tableaux (exemples). Voici le code de la méthode GRAPH STOCKS :
`Méthode : GRAPH STOCKS `Catégories : Mois de l'année, Séries : Société et indice industriel, Valeurs : Prix moyen de l'action C_ENTIER LONG($Gauche;$Haut;$Droite;$Bas) C_ENTIER LONG($Gauche2;$Haut2;$Droite2;$Bas2) C_ENTIER LONG($Zone;$Chart;$Titre;$Position;$Police;$Couleur) `Générer la sélection des enregistrements à tracer TOUT SELECTIONNER([RapportBoursier]) `Ouvrir une fenêtre externe pour afficher le graphe $Zone:=Creer fenetre externe(2;40;550;400;8;"Mon graphe";"_4D Chart") `Créer un graphe linéaire 3D $Chart:=ch_Donnees vers graphe ($Zone;101;2;1;1;Table(»[RapportBoursier]);2;1;3) `Définir la rotation et l'élévation du graphe à 1 degré chacune ch_FIXER VUE 3D ($Zone;$Chart;1;1) `Définir les couleurs des séries (Vert, Rouge) ch_FIXER TRAMAGE GRAPHE ($Zone;$Chart;8;100;3;ch_Index vers couleur (10)) ch_FIXER TRAMAGE GRAPHE ($Zone;$Chart;8;200;3;ch_Index vers couleur (4)) `Montrer les libellés des axes ch_FIXER LIBELLE ($Zone;$Chart;2;3;0;"### E") ch_FIXER LIBELLE ($Zone;$Chart;1;0;0;"") `Cacher ces libellés ch_FIXER LIBELLE ($Zone;$Chart;0;3;3;"##/##/##") `Ajouter les titres des axes des élément et des valeurs ch_FIXER TITRE ($Zone;$Chart;2;2;3;"Moyenne des cours en euros") ch_FIXER TITRE ($Zone;$Chart;0;3;0;"Date") `Définir la position de la légende en haut au centre, orientation horizontale ch_FIXER ATTRIBUTS LEGENDE ($Zone;$Chart;1;0;0;0;7;0;0) `Ajouter un titre de graphe dans l'angle supérieur gauche $Titre:=ch_Creer texte($Zone;1;1;350;3;"Performance de la société/Moyenne du secteur") `Formater le titre du graphe (Palatino, 14 points, Gras, Centré, Bleu) $Couleur:=ch_Index vers couleur (7) $Police:=ch_Numero de police ("Palatino") ch_FIXER TEXTE ($Zone;$Titre;$Police;14;1;$Couleur;1) `Obtenir la limite de zone afin de centrer les objets dans la zone ch_LIMITES ZONE ($Zone;1;$Gauche;$Haut;$Droite;$Bas) `Centrer le graphe ch_LIRE LIMITES ($Zone;$Chart;$Gauche2;$Haut2;$Droite2;$Bas2) $Position:=(($Droite-$Gauche)-($Droite2-$Gauche2))/2 ch_DEPLACER ($Zone;$Chart;$Position;$Haut2) `Centrer le titre du graphe ch_LIRE LIMITES ($Zone;$Titre;$Gauche2;$Haut2;$Droite2;$Bas2) $Position:=(($Droite-$Gauche)-($Droite2-$Gauche2))/2 ch_DEPLACER ($Zone;$Titre;$Position;$Haut2) `Déplacer le graphe de 10 points vers le bas ch_LIRE LIMITES ($Zone;$Chart;$Gauche;$Haut;$Droite;$Bas) ch_DEPLACER ($Zone;$Chart;$Gauche;$Haut+10)
Référence
Créer des graphes à partir de tableaux (exemples).