Difference between revisions of "Comment produire un graphique relationnel"

From Gramps
Jump to: navigation, search
(Exemple 1-A: un graphique des descendants)
m (D'autres possibilités)
(44 intermediate revisions by 2 users not shown)
Line 3: Line 3:
  
  
Ceci est un tutoriel pour réaliser un graphique relationnel (peut être les ascendants, descendants, des individus filtés, toute la base !) avec GRAMPS-3.0.x et un greffon (''plugin'') basé sur GraphViz.[[Image:RelationshipChartDescendants.png|right|thumb|300px|Un exemple de graphique]]
+
Ceci est un tutoriel pour réaliser un graphique relationnel (pouvant être les ascendants, descendants, des individus filtrés, toute la base !) depuis Gramps-2.2.x avec un greffon (''plugin'') basé sur GraphViz.[[Image:RelationshipChartDescendants.png|right|thumb|300px|Un exemple de graphique]]
  
 
Ce rapport est généré avec graphviz, ainsi vous avez besoin d'installer [http://graphviz.org graphviz] (sous linux, utilisez votre gestionnaire de paquets).  
 
Ce rapport est généré avec graphviz, ainsi vous avez besoin d'installer [http://graphviz.org graphviz] (sous linux, utilisez votre gestionnaire de paquets).  
Line 9: Line 9:
 
== Avant de démarrer ==
 
== Avant de démarrer ==
  
GRAMPS peut produire des graphiques, mais pour les voir, vous avez besoin d'autres programmes. Nous vous recommandons :
+
Gramps peut produire des graphiques, mais pour les voir, vous avez besoin d'autres programmes. Nous vous recommandons :
 
* [http://graphviz.org Graphviz] : '''nécessaire''' pour les graphiques relationnels.
 
* [http://graphviz.org Graphviz] : '''nécessaire''' pour les graphiques relationnels.
 
* [http://www.inkscape.org/ Inkscape] : pour voir ou éditer les graphiques 'svg'.
 
* [http://www.inkscape.org/ Inkscape] : pour voir ou éditer les graphiques 'svg'.
* [http://www.openoffice.org/ openoffice], [http://www.koffice.org/ koffice] : pour voir et éditer les documents 'odt'.
+
* [http://www.documentfoundation.org/download/ LibreOffice] ou [http://www.openoffice.org/ OpenOffice] ou [http://www.calligra-suite.org/ Calligra] : pour voir et éditer les documents 'odt'.
  
==Filtres : les personnes devant être imprimées ? ==
+
== Filtres : les personnes devant être imprimées ? ==
  
 
=== Qu'est ce que les filtres ?===
 
=== Qu'est ce que les filtres ?===
  
Dans GRAMPS vous pouvez définir des filtres pour une sélection d'individus, voir [[Gramps_3.1_Wiki_Manual_-_Filters/fr|les filtres]]. Dans la plupart des rapports, chaque filtre personnel que vous avez créé sera disponible, ainsi que les 'filtres standards' sur les descendants et ascendants. Ces derniers sont dépendant de la personne active lorsque que vous appelez le rapport.
+
Dans Gramps vous pouvez définir des filtres pour une sélection d'individus, voir [[Gramps_3.4_Wiki_Manual_-_Filters/fr|les filtres]]. Dans la plupart des rapports, chaque filtre personnel que vous avez créé sera disponible, ainsi que les 'filtres standards' sur les descendants et ascendants. Ces derniers sont dépendants de la personne active lorsque que vous appelez le rapport.
  
 
=== Combien d'individus ?===
 
=== Combien d'individus ?===
Line 28: Line 28:
 
[[Image:RelationshipChartDescendants.png|right|thumb|200px|Un graphique des descendants, cliquez pour les détails]]
 
[[Image:RelationshipChartDescendants.png|right|thumb|200px|Un graphique des descendants, cliquez pour les détails]]
  
Téléchargez [http://gramps.svn.sourceforge.net/viewvc/gramps/trunk/example/gramps/data.gramps example.gramps] (clic droit 'Enregistrer sous ...'), créez une nouvelle base de données dans GRAMPS, et importez le fichier example.gramps.
+
Téléchargez [http://gramps.svn.sourceforge.net/viewvc/gramps/trunk/example/gramps/data.gramps example.gramps] (clic droit 'Enregistrer sous ...'), créez une nouvelle base de données dans Gramps, et importez le fichier example.gramps.
  
 
Si ce n'est pas le cas, définissez la personne active : ''Garner, Lewis Anderson''.  
 
Si ce n'est pas le cas, définissez la personne active : ''Garner, Lewis Anderson''.  
  
 
Pour générer un graphique des descendants avec le rapport relationnel, choisissez depuis le menu  
 
Pour générer un graphique des descendants avec le rapport relationnel, choisissez depuis le menu  
'''Rapports -> Graphiques -> Graphique relationnel...'''
+
{{man menu|Rapports -> Graphiques -> Graphique relationnel...}}.
  
 
Dans le dialogue, définissez le format .png et choisissez dans les onglets disponibles :
 
Dans le dialogue, définissez le format .png et choisissez dans les onglets disponibles :
Line 42: Line 42:
 
(Si vous avez des difficultés pour saisir une taille dans le dialogue. Une alternative étant d'utiliser le code graphviz de l'exemple 3, ci dessous.)
 
(Si vous avez des difficultés pour saisir une taille dans le dialogue. Une alternative étant d'utiliser le code graphviz de l'exemple 3, ci dessous.)
  
Le résultat (avec Gramps 2.2.7) est visible à la droite de l'écran. Vous pouvez utiliser la fonction imprimer liée à votre visualiseur d'image et votre imprimante (vérifiez la valeur DPI de votre fichier png !), ou vous pouvez utiliser cette image sur un site internet pour la partager. Dans ce dernier cas, vous pouvez également jetter un oeil sur [[Make flash plugin from a png]], pour rendre le graphique plus 'navigable'.
+
Le résultat (avec Gramps 2.2.7) est visible à la droite de l'écran. Vous pouvez utiliser la fonction imprimer liée à votre visualiseur d'image et votre imprimante (vérifiez la valeur DPI de votre fichier png !), ou vous pouvez utiliser cette image sur un site internet pour la partager. Dans ce dernier cas, vous pouvez également jetter un oeil sur [[Make flash plugin from a png|faire un graphique relationnel en flash]], pour rendre le graphique plus 'navigable'.
  
Dans l'image, vous voyez les hommes en bleu, et les femmes en rose. Les cercles jaunes indiquent un noeud familial permettant l'impression des données de mariage (si connues). Vous pouvez ignorer les noeuds familiaux en désélectionant l'option ''Afficher les noeuds familiaux'' dans les '''Options de Graphviz'''.
+
Dans l'image, vous voyez les hommes en bleu, et les femmes en rose. Les cercles jaunes indiquent un noeud familial permettant l'impression des données de mariage (si connues). Vous pouvez ignorer les noeuds familiaux en désélectionnant l'option ''Afficher les noeuds familiaux'' dans les '''Options de Graphviz'''.
  
== Example 1-B: a chart with ancestors ==
+
== Exemple 1-B: un graphique des ascendants ==
[[Image:RelationshipChartAncestors_small.png|left|thumb|350px|Fig. An ancestor chart. For the detailed image, [[Media:RelationshipChartAncestors.png| click here (853kb!)]]]]
 
  
 +
[[Image:RelationshipChartAncestors_small.png|left|thumb|350px|Fig. Le graphique des ascendants. Pour l'image détaillée, [[Media:RelationshipChartAncestors.png| cliquez ici (853kb!)]]]]
  
 +
Téléchargez et ouvrez le fichier example.gramps (voir l'exemple précédent)
  
Download and open the example.gramps file as in Example 1
+
Définissez ''Warner, Carl Thomas'' comme personne active.
  
 +
Répétez les étapes des l'exemple précédent, mais choisissez juste le filtre ''Ascendants de Warner, Carl Thomas''.
  
 +
Ci-joint le résultat.
  
Set ''Warner, Carl Thomas'' to be the active person.
+
C'est un graphique très grand.
 +
Il peut être vu dans un bon visualiseur d'image.  
  
Repeat the process in Example 1-a, but choose the filter ''Ancestors of Warner, Carl Thomas'' this time.  
+
Pour l'impression vous aurez sans doute besoin d'utiliser plusieurs pages (par exemple au format PDF via Ghostscript), ou une bonne table d'impression. L'impression sur une imprimante grand public est également possible avec des graphiques d'une taille raisonnable.
  
You can see the result to the left.
+
<br clear="all"/>
  
 +
== Exemple 2: un graphique avec ascendants, descendants et leurs familles ==
  
 +
[[Image:RelationshipChartAncestorsAndDescendants_small.png|right|thumb|450px|Fig. Un grand graphique. Pour l'image détaillée, [[Media:RelationshipChartAncestorsAndDescendants.png| cliquez ici (363kb!)]]]]
  
This is already an extremely large graph.
+
Notez que cet exemple utilise les filtres.
 +
Voir [[Gramps_3.4_Wiki_Manual_-_Filters/fr|cette page]] pour plus d'informations sur les filtres.
  
 +
Ouvrez le fichier example.gramps et sélectionnez ''Cristiansen, Frances'' comme personne active.
  
 +
Tout d'abord, nous créons un filtre :
 +
Ouvrez l'éditeur de filtre et créez un nouveau filtre, appelé '''Frances1'''. Ce filtre contiendra les règles :
  
 +
* ''Ascendants de <individu>'' choisissez ''Christiansen, Frances'' et cochez <tt>inclusif</tt>.
 +
* ''Descendants de <individu>'' choisissez ''Christiansen, Frances''
  
 +
Puis, nous créons le filtre qui sera utilisé pour le rapport. Il sera basé sur le précédent filtre : créez ce filtre, appelé '''Frances2'''. Ce filtre contiendra les règles :
  
It can only be readily viewed in a good image viewer.  
+
* ''Individus correspondants au filtre'', choisissez ''Frances1''.
 +
* ''Parents du filtre '' Frances1
 +
* ''Frères et soeurs du filtre '' Frances1
 +
* ''Conjoints du filtre '' Frances1
  
For printing you need to resort to printing on several pages, or you need access to a large plotter.
+
Enfin, fermez l'éditeur de filtre, et suivez les instructions données dans les exemples 1a et 1b, mais choisissez le filtre '''Frances2''' dans l'onglet '''Options du rapport''' (Graphique relationnel).
  
== Example 2: A chart with ancestors, descendants and their families ==
+
Le résultat est visible à droite (363kb, grand fichier !)
[[Image:RelationshipChartAncestorsAndDescendants_small.png|right|thumb|450px|Fig. A large chart. For the detailed image, [[Media:RelationshipChartAncestorsAndDescendants.png| click here (363kb!)]]]]
 
  
Note: This example uses filters. See [[Example filters| Examples of filters]] for an introductory example.
+
== Exemple 3, générer un graphique en utilisant Graphviz et l'outil en ligne de commande ==
  
 +
=== Préparation dans Gramps ===
  
 +
Dans le menu, sélectionnez  {{man menu|Rapports ->  GraphViz -> Graphique relationnel...}}.
  
 +
Choisissez le filtre que vous souhaitez utiliser, définissez également autant d'options que possible aux valeurs voulues (comme expliqué dans l'exemple 1-A), mais le format sera "Graphviz (.gv)". Cliquez sur {{man button|Valider}}. Vous devez obtenir un fichier ".gv".
  
Open the file example.gramps and select Cristiansen, Frances as the active person.
+
Ce fichier est du type texte, ainsi il peut être ouvert avec un éditeur de texte.
  
First we create a helper filter:
+
=== Changements manuels ===
Open the filter editor and create a new filter, called '''Frances1'''. The filter should contain the rules
 
  
* ''Ancestors of <person>'' choose Christiansen, Frances and check <tt>inclusive</tt>.
+
Le fichier ''dot'' (.gv) a une structure bien définie, pour plus d'informations, voir : [http://www.graphviz.org/Documentation.php www.graphviz.org]
* ''Descendants of <person>'' chose Christiansen, Frances
 
 
 
 
 
 
 
 
 
Make sure that "At least one rule must be fulfilled" is chosen, so that we get both ancestors and descendants!
 
 
 
 
 
Now we create the filter we will actually use for the report. It will be based on the previous filter: Create a new filter, called '''Frances2'''. This filter should contain the rules:
 
 
 
* ''People matching the filter'', choose Frances1
 
* ''Parents of filter'' Frances1
 
* ''Siblings of filter'' Frances1
 
* ''Spouses of filter'' Frances1
 
 
 
 
 
 
 
 
 
Now close the filter editor, and follow the instructions given in Examples 1a and 1b, but this time choosing the filter '''Frances2''' in the '''Report Options''' tab.
 
 
 
 
 
 
 
 
 
 
 
 
 
The result is visible to the right (363kb, large file !)
 
 
 
== Example 3, Generating the graph by using the Graphviz command line tool ==
 
 
 
{|style="width:80%;margin-top:+.7em;margin-bottom:+.7em;background-color: #c0f0ff;border:1px solid #ccc; padding: 5px" align="center"
 
|-
 
|[[Image:Gnome-important.png]]
 
|<center style="font-size:100%">'''Note:''' The current stable version of [http://graphviz.org Graphviz] (v2.12) has a bug.  In order to correctly display the family nodes (yellow balloons), all occurrences of the word ''ellipse'' should be changed to ''egg'' (see [http://www.graphviz.org/bugs/b1078.html bug report 1078]).</center>
 
|}
 
 
 
=== Preparation with GRAMPS ===
 
Use this only as a way to work around problems like setting the paper size.
 
 
 
In the menu, select '''Reports ->  Code Generators -> Relationship graph...'''.
 
 
 
Choose the filter you want to use, and set also as many of the other options as possible to the desired values (as explained in Example 1-A), but the format should be "Graphviz (dot)". Click Ok. You should now have a file of type ".dot".
 
This file is a text file, so it can be opened in any text-editor.
 
 
 
=== Manual changes ===
 
The dot file is a text file with a well explained structure, for extra info: [http://www.graphviz.org/Documentation.php www.graphviz.org]
 
  
 
  digraph GRAMPS_graph
 
  digraph GRAMPS_graph
Line 137: Line 109:
 
   bgcolor=white;
 
   bgcolor=white;
 
   center="true";  
 
   center="true";  
  charset="iso-8859-1";
 
 
   concentrate="false";
 
   concentrate="false";
 
   dpi="75";
 
   dpi="75";
Line 144: Line 115:
 
...
 
...
  
then the actual GRAMPS data are shown:
+
les données Gramps sont affichées :
 
   
 
   
 
  I3493 [ shape="box" fillcolor="pink" style="solid,filled" label="Blancke, Charlotte\n(1801)" ];
 
  I3493 [ shape="box" fillcolor="pink" style="solid,filled" label="Blancke, Charlotte\n(1801)" ];
 
...
 
...
You can optimize the layout by making changes in the file.  
+
 
*For paper size: look for the "page" (paper size) and "size" (area of paper to use), and change these to '''some large values'''. This is important as otherwise the figure will be wrongly scaled giving bad picture quality (eg unreadable text).  
+
Vous pouvez optimiser la mise en page en appliquant des changements au fichier.  
*You can also change the font by adding a font family. Look for the lines
+
 
 +
*La taille de la page : regardez la section "page" et "taille", et changez les informations par des '''valeurs plus grandes'''. Ceci est important, dans le cas contraire, les miniatures ne seront pas de bonne qualité ou le texte ne sera pas lisible.  
 +
*Vous pouvez également changer la famille de police.
 +
Regardez les lignes :
 
  node [style=filled fontsize="12"];
 
  node [style=filled fontsize="12"];
:and change that into eg
+
et changez par :
 
  node [style=filled fontsize="12" fontname="Sans"];
 
  node [style=filled fontsize="12" fontname="Sans"];
:to use the Sans font. On the command line you will see which ttf font Graphviz finds on your PC (using the verbose flag, see below).
+
pour utiliser la police ''Sans''.  
 +
En ligne de commande regardez quelle police ttf, Graphviz trouve sur votre PC.
  
===Generation of the Image===
+
===Génération de l'image===
Save the modified file under the name ''report.dot'', and run the command
 
dot -Tpng -oreport.png report.dot
 
This should use the graphviz "dot" tool to generate the .png file containing the report.
 
  
To see information messages (like font) use the -v flag. You can also output other image formats, eg, for jpeg with verbose output:
+
Sauvez votre fichier modifié sous le nom de ''rapport.dot'', et lancez la commande :
  dot -Tjpg -oreport.jpg report.dot -v
+
dot -Tpng -orapport.png rapport.dot
 +
Ceci va utiliser l'outil graphviz "dot" pour générer le fichier .png contenant le rapport.
 +
 
 +
Pour voir les messages d'information (comme la police) utilisez l'argument -v. Vous pouvez également générer d'autres formats d'image, par exemple, le format jpeg avec les informations de sortie :
 +
  dot -Tjpg -orapport.jpg rapport.dot -v
  
 
...
 
...
Line 188: Line 164:
 
...
 
...
  
== Troubleshooting ==
+
== Imprimer de grands graphiques ==
*If you encounter bad fonts (missing characters) or wrong fontsizes, see Example 3 on how you can set the font yourself.
+
=== Méthode simple ===
*If you have a bad resolution of png, eg unreadable text, this is probably because you have set a paper size which is to small. See Exampe 1-A: set the papersize of number of pages to a high number, but select in '''Layout Options''', in Aspect ratio: <tt>automatically use optimal number pages</tt>, or use <tt>minimal size</tt>
+
[[Image:familylines_graph-A1.ps.jpg|right|thumb|150px|Graphique au format A1]]
 +
[[Image:familylines_graph-A1_2x4xA4.pdf.jpg|right|thumb|100px|Découpé en 8 pages A4]]
 +
Lancer le « Graphique de lignées familiales » (dans « Rapports > Diagrammes ») et le configurer. Par exemple :
 +
# Options du papier :
 +
#* Taille : A1
 +
#* Orientation : 1. Paysage
 +
#* Marges : toutes à 1 cm
 +
# Individus recherchés :
 +
#* Sélectionner tous les individus devant être utilisés comme base pour tracer l'arbre (permet d'inclure les lignés des parents et grand-parents par exemple)
 +
# Couleur de la famille :
 +
#* Donner une couleur aux noms principaux
 +
# Mise en page GraphViz :
 +
#* Taille de la police : 32
 +
#* Orientation du graphique : Horizontal ()
 +
#* Nombre de pages horizontales et verticales : 1
 +
# Options GraphViz :
 +
#* Ratio d'aspect : Remplir la zone donnée
 +
#* Résolution : 300
 +
#* Espacement de nœud et rang : 0,50
 +
#* Utiliser les sous-graphiques : Oui
 +
# Format de sortie : PostScript
 +
Enregistrer le fichier familylines_graph.ps et utiliser le logiciel ''poster'' (Ubuntu/Debian : <tt>apt-get install poster</tt>) pour le découper en plusieurs pages :
 +
  poster -v -mA4 -pA1 familylines_graph.ps > familylines_graph-A1_A4.ps
 +
Ensuite, avec ''ps2pdf'', convertir ce fichier PostScript en PDF pour une utilisation plus simple :
 +
  ps2pdf familylines_graph-A1_A4.ps
 +
Il ne reste plus qu'à imprimer les pages et les assembler. L'auteur de ''Poster'' suggère de découper les marges de gauche et du bas (sauf sur les pages du bord gauche et celles du bas) et de les coller ensemble en commençant par celle en bas à gauche et ensuite de gauche à droite puis de bas en haut. Enfin, pour renforcer le poster, le retourner et mettre du ruban adhésif sur les jointures)
 +
 
 +
=== Autre méthode ===
 +
Si vous souhaitez imprimer de grands graphiques (surtout avec des photos et autres détails) dans une qualité de lecture raisonnable, voici quelques étapes qui pourraient vous aider :
 +
# Dans les options du document, choisissez le format de sortie SVG.
 +
# Définissez le format de papier pour tenir dans une feuille (SVG ne peut pas gérer plus d'une feuille), donc choisissez A0 ou taille personnalisée.
 +
# Utilisez [http://www.inkscape.org/ Inkscape] pour ouvrir votre graphique SVG.
 +
# Menu Fichier/Propriétés du document, utilisez la fonction "Adapter la page à la sélection" (corrigez la taille d'après la taille du graphique).
 +
# Menu Fichier/Enregistrer sous, choisissez le format PDF.
 +
 
 +
Vous avez maintenant un grand poster que vous pouvez imprimer. Inkscape ne donne pas de titre au fichier PDF pour imprimer de grands graphiques sur plusieurs feuilles A4/A3, vous devez donc utiliser un autre programme pour le faire. Sous GNU/Linux, l'outil en ligne de commande ''pdfposter'' peut diviser un grand fichier PDF en plusieurs au format A4/A3/Lettre/etc. Installez-le via le gestionnaire de paquets de votre distribution (Ubuntu/Debian : <tt>sudo apt-get install pdfposter</tt>). Par exemple, pour diviser un poster A0 en pages A4 (lisez la page de manuel : <tt>man pdfposter</tt>) :
 +
  pdfposter -mA4 -pA0 posterA0.pdf posterA0_A4.pdf
 +
 
 +
=== Autres logiciels ===
 +
* Sous Linux, Windows et Mac, vous pouvez utiliser le programme ''[http://posterazor.sourceforge.net/ PosterRazor]'', qui possède une interface simple à utiliser. Note : ''PosterRazor'' ne peut découper que des images, il faudra donc choisir d'enregistrer le graphique au format PNG dans Gramps.
 +
* Sous Windows, il y a également ''[http://www.noliturbare.com/pdf-tools/pdf-tiler Govert's PDF Tiler]'' (nécessite .NET 1.1)
 +
 
 +
== Dépannage ==
 +
 
 +
*Si vous rencontrez un problème avec les polices de caractère (caractères manquants) ou une taille de police inadaptée, voir l'exemple 3 sur comment définir manuellement la police.
 +
*Si vous avez une mauvaise résolution pour le fichier png, un texte illisible, c'est probablement la taille du papier qui est trop petite. Voir l'exemple 1-A: définir la taille du papier, et modifiez également les '''Options de la mise en page''', dans le ratio d'aspect : utilisez <tt>automatiquement le nombre optimal de pages</tt>, ou <tt>taille minimale</tt>.
 +
 
 +
{{man warn|Rapports et identifiants personnalisés|Après l'importation d'un GEDCOM, votre base de données peut contenir des identifiants non-normalisés (par ex. 123I ou 456U non définis dans {{man menu|Édition --> Préférences --> Identifiants ID}}). Si le rapport généré n'affiche pas correctement vos données, alors essayez [[Gramps_3.1_Wiki_Manual_-_Tools/fr#R.C3.A9organiser_les_identifiants_GRAMPS|l'outil Réorganiser les identifiants Gramps...]] ({{man menu|Outils --> Modification de la base de données -->Réorganiser les identifiants Gramps...}}).}}
 +
 
 +
== D'autres possibilités  ==
 +
 
 +
* Vous pouvez générer des graphiques pour les descendants et les ajouter à la galerie d'image pour la personne. Le graphique est disponible pour sur un site internet.
 +
* [http://arbogastearbogast.blogspot.fr/2013/09/travail-de-transmission-3eme-partie.html Découpage en secteurs]
 +
* [[Make flash plugin from a png |Un graphique relationnel en flash]], permet de zoomer, se déplacer, ... au-dessus de vos données, ou mieux encore, utilisez le format SVG pour Firefox et Opera, voir [http://www.gramps-project.org/wiki/index.php?title=UnsupportedPlugins#DenominoViso_-_HTML_Ancestors_page DenominoViso].
  
{{man warn|Reports and custom IDs|After a GEDCOM import, your database can use some non-standard IDs (ie. 123I or 456U not set on '''Edit --> Preferences --> Identifiants ID'''). If generated reports do not properly display data, then try [[Gramps_3.0_Wiki_Manual_-_Tools#Reorder_GRAMPS_ID|Reorder GRAMPS IDs tool]] ('''Tools-->Database Processing-->Reorder GRAMPS IDs''').}}
+
== Comment aider au développement ? ==
  
== Further cool things to do ==
+
Si vous regardez les spécifications du format dot, vous noterez qu'il y a beaucoup de possibilités avec GraphViz. Si vous avez des connaissances en programmation vous pouvez ajouter des fonctionnalités :
* You can make descendant charts and add them to the media gallery of the person. Like that, the chart is available from the website.
+
* plus/au moins de texte dans les boîtes : quel texte et comment les organiser ?
* offer a chart on your website as a [[Make flash plugin from a png |flash relationship graph]], enabling zooming, moving, ... over your data or just use SVG for Firefox and Opera, see [http://www.gramps-project.org/wiki/index.php?title=UnsupportedPlugins#DenominoViso_-_HTML_Ancestors_page DenominoViso]
+
* Les couleurs. Voir le rapport [[Familylines plugin|Lignées familiales]] : une couleur par famille, pour les relations spécifiques, pour la souche, ...
  
== Want to help developing ? ==
+
== Lien vers le manuel ==
If you go through the dot specifications, you will note that more can be done with graphics. If you have programming skills you can add some functionality:
 
* more/better text in the boxes: what text and how to organize it?
 
* coloring. See the [[Familylines plugin]]: a color per family, for specific relations, for the central person, ...
 
  
== Link to the manual ==
+
Par ailleurs, jettez un oeil sur [http://www.gramps-project.org/wiki/index.php?title=Gramps_3.1_Wiki_Manual_-_Reports/fr#Graphique_relationnel le graphique relationnel].
Also check out the [http://www.gramps-project.org/wiki/index.php?title=Gramps_3.0_Wiki_Manual_-_Reports#Relationship_Graph Wiki Manual].
 
  
 
[[Category:Fr:Comment je...]]
 
[[Category:Fr:Comment je...]]

Revision as of 09:42, 14 November 2013


Ceci est un tutoriel pour réaliser un graphique relationnel (pouvant être les ascendants, descendants, des individus filtrés, toute la base !) depuis Gramps-2.2.x avec un greffon (plugin) basé sur GraphViz.

Un exemple de graphique

Ce rapport est généré avec graphviz, ainsi vous avez besoin d'installer graphviz (sous linux, utilisez votre gestionnaire de paquets).

Avant de démarrer

Gramps peut produire des graphiques, mais pour les voir, vous avez besoin d'autres programmes. Nous vous recommandons :

Filtres : les personnes devant être imprimées ?

Qu'est ce que les filtres ?

Dans Gramps vous pouvez définir des filtres pour une sélection d'individus, voir les filtres. Dans la plupart des rapports, chaque filtre personnel que vous avez créé sera disponible, ainsi que les 'filtres standards' sur les descendants et ascendants. Ces derniers sont dépendants de la personne active lorsque que vous appelez le rapport.

Combien d'individus ?

Votre filtre peut contenir un nombre très important d'individus. De ce fait imprimer ou voir un très grand graphique peut être très problématique selon la capacité et la configuration de votre ordinateur.

Exemple 1-A: un graphique des descendants

Un graphique des descendants, cliquez pour les détails

Téléchargez example.gramps (clic droit 'Enregistrer sous ...'), créez une nouvelle base de données dans Gramps, et importez le fichier example.gramps.

Si ce n'est pas le cas, définissez la personne active : Garner, Lewis Anderson.

Pour générer un graphique des descendants avec le rapport relationnel, choisissez depuis le menu Rapports -> Graphiques -> Graphique relationnel....

Dans le dialogue, définissez le format .png et choisissez dans les onglets disponibles :

  1. Options Papier-> Taille : selon les nombre d'individus, choisissez la taille personnalisée (définir la hauteur et la largeur avec des grands nombres)
  2. Options du rapport-> Filtre : Descendants de Garner, Lewis Andersson
  3. Optons de mise en page-> Aspect : taille minimale

(Si vous avez des difficultés pour saisir une taille dans le dialogue. Une alternative étant d'utiliser le code graphviz de l'exemple 3, ci dessous.)

Le résultat (avec Gramps 2.2.7) est visible à la droite de l'écran. Vous pouvez utiliser la fonction imprimer liée à votre visualiseur d'image et votre imprimante (vérifiez la valeur DPI de votre fichier png !), ou vous pouvez utiliser cette image sur un site internet pour la partager. Dans ce dernier cas, vous pouvez également jetter un oeil sur faire un graphique relationnel en flash, pour rendre le graphique plus 'navigable'.

Dans l'image, vous voyez les hommes en bleu, et les femmes en rose. Les cercles jaunes indiquent un noeud familial permettant l'impression des données de mariage (si connues). Vous pouvez ignorer les noeuds familiaux en désélectionnant l'option Afficher les noeuds familiaux dans les Options de Graphviz.

Exemple 1-B: un graphique des ascendants

Fig. Le graphique des ascendants. Pour l'image détaillée, cliquez ici (853kb!)

Téléchargez et ouvrez le fichier example.gramps (voir l'exemple précédent)

Définissez Warner, Carl Thomas comme personne active.

Répétez les étapes des l'exemple précédent, mais choisissez juste le filtre Ascendants de Warner, Carl Thomas.

Ci-joint le résultat.

C'est un graphique très grand. Il peut être vu dans un bon visualiseur d'image.

Pour l'impression vous aurez sans doute besoin d'utiliser plusieurs pages (par exemple au format PDF via Ghostscript), ou une bonne table d'impression. L'impression sur une imprimante grand public est également possible avec des graphiques d'une taille raisonnable.


Exemple 2: un graphique avec ascendants, descendants et leurs familles

Fig. Un grand graphique. Pour l'image détaillée, cliquez ici (363kb!)

Notez que cet exemple utilise les filtres. Voir cette page pour plus d'informations sur les filtres.

Ouvrez le fichier example.gramps et sélectionnez Cristiansen, Frances comme personne active.

Tout d'abord, nous créons un filtre : Ouvrez l'éditeur de filtre et créez un nouveau filtre, appelé Frances1. Ce filtre contiendra les règles :

  • Ascendants de <individu> choisissez Christiansen, Frances et cochez inclusif.
  • Descendants de <individu> choisissez Christiansen, Frances

Puis, nous créons le filtre qui sera utilisé pour le rapport. Il sera basé sur le précédent filtre : créez ce filtre, appelé Frances2. Ce filtre contiendra les règles :

  • Individus correspondants au filtre, choisissez Frances1.
  • Parents du filtre Frances1
  • Frères et soeurs du filtre Frances1
  • Conjoints du filtre Frances1

Enfin, fermez l'éditeur de filtre, et suivez les instructions données dans les exemples 1a et 1b, mais choisissez le filtre Frances2 dans l'onglet Options du rapport (Graphique relationnel).

Le résultat est visible à droite (363kb, grand fichier !)

Exemple 3, générer un graphique en utilisant Graphviz et l'outil en ligne de commande

Préparation dans Gramps

Dans le menu, sélectionnez Rapports -> GraphViz -> Graphique relationnel....

Choisissez le filtre que vous souhaitez utiliser, définissez également autant d'options que possible aux valeurs voulues (comme expliqué dans l'exemple 1-A), mais le format sera "Graphviz (.gv)". Cliquez sur Valider. Vous devez obtenir un fichier ".gv".

Ce fichier est du type texte, ainsi il peut être ouvert avec un éditeur de texte.

Changements manuels

Le fichier dot (.gv) a une structure bien définie, pour plus d'informations, voir : www.graphviz.org

digraph GRAMPS_graph
{
 bgcolor=white;
 center="true"; 
 concentrate="false";
 dpi="75";
 graph [fontsize=12];

...

les données Gramps sont affichées :

I3493 [ shape="box" fillcolor="pink" style="solid,filled" label="Blancke, Charlotte\n(1801)" ];

...

Vous pouvez optimiser la mise en page en appliquant des changements au fichier.

  • La taille de la page : regardez la section "page" et "taille", et changez les informations par des valeurs plus grandes. Ceci est important, dans le cas contraire, les miniatures ne seront pas de bonne qualité ou le texte ne sera pas lisible.
  • Vous pouvez également changer la famille de police.

Regardez les lignes :

node [style=filled fontsize="12"];

et changez par :

node [style=filled fontsize="12" fontname="Sans"];

pour utiliser la police Sans. En ligne de commande regardez quelle police ttf, Graphviz trouve sur votre PC.

Génération de l'image

Sauvez votre fichier modifié sous le nom de rapport.dot, et lancez la commande :

dot -Tpng -orapport.png rapport.dot

Ceci va utiliser l'outil graphviz "dot" pour générer le fichier .png contenant le rapport.

Pour voir les messages d'information (comme la police) utilisez l'argument -v. Vous pouvez également générer d'autres formats d'image, par exemple, le format jpeg avec les informations de sortie :

dot -Tjpg -orapport.jpg rapport.dot -v

...

Activated plugin library: libgvplugin_pango.so.5
Using textlayout: textlayout:cairo
Activated plugin library: libgvplugin_dot_layout.so.5
Using layout: dot:dot_layout
Using render: cairo:cairo
Activated plugin library: libgvplugin_gd.so.5
Using device: jpg:cairo:gd
The plugin configuration file:	/usr/lib/graphviz/config4 was successfully loaded.
   render	:  cairo dot fig gd map ps svg vml vrml xdot
   layout	:  circo dot fdp neato nop nop1 nop2 twopi
   textlayout	:  textlayout
   device	:  canon cmap cmapx cmapx_np dia dot fig gd gd2 gif hpgl imap imap_np ismap jpe jpeg jpg mif mp pcl pdf pic plain plain-ext png ps ps2 svg svgz vml vmlz vrml vtx wbmp xdot xlib
   loadimage	:  (lib) gd gd2 gif jpe jpeg jpg png ps
dot: fontname "Times-Roman" resolved to: "Times New Roman, Normal" /usr/share/fonts/truetype/msttcorefonts/Times_New_Roman.ttf
network simplex: 11 nodes 10 edges 0 iter 0.00 sec
mincross: pass 0 iter 0 trying 0 cur_cross 0 best_cross 0
mincross GRAMPS_graph: 0 crossings, 0.00 secs.
network simplex: 23 nodes 37 edges 7 iter 0.00 sec
routesplines: 10 edges, 30 boxes 0.00 sec
Using render: cairo:cairo
Using device: jpg:cairo:gd

...

Imprimer de grands graphiques

Méthode simple

Graphique au format A1
Découpé en 8 pages A4

Lancer le « Graphique de lignées familiales » (dans « Rapports > Diagrammes ») et le configurer. Par exemple :

  1. Options du papier :
    • Taille : A1
    • Orientation : 1. Paysage
    • Marges : toutes à 1 cm
  2. Individus recherchés :
    • Sélectionner tous les individus devant être utilisés comme base pour tracer l'arbre (permet d'inclure les lignés des parents et grand-parents par exemple)
  3. Couleur de la famille :
    • Donner une couleur aux noms principaux
  4. Mise en page GraphViz :
    • Taille de la police : 32
    • Orientation du graphique : Horizontal (←)
    • Nombre de pages horizontales et verticales : 1
  5. Options GraphViz :
    • Ratio d'aspect : Remplir la zone donnée
    • Résolution : 300
    • Espacement de nœud et rang : 0,50
    • Utiliser les sous-graphiques : Oui
  6. Format de sortie : PostScript

Enregistrer le fichier familylines_graph.ps et utiliser le logiciel poster (Ubuntu/Debian : apt-get install poster) pour le découper en plusieurs pages :

 poster -v -mA4 -pA1 familylines_graph.ps > familylines_graph-A1_A4.ps

Ensuite, avec ps2pdf, convertir ce fichier PostScript en PDF pour une utilisation plus simple :

 ps2pdf familylines_graph-A1_A4.ps

Il ne reste plus qu'à imprimer les pages et les assembler. L'auteur de Poster suggère de découper les marges de gauche et du bas (sauf sur les pages du bord gauche et celles du bas) et de les coller ensemble en commençant par celle en bas à gauche et ensuite de gauche à droite puis de bas en haut. Enfin, pour renforcer le poster, le retourner et mettre du ruban adhésif sur les jointures)

Autre méthode

Si vous souhaitez imprimer de grands graphiques (surtout avec des photos et autres détails) dans une qualité de lecture raisonnable, voici quelques étapes qui pourraient vous aider :

  1. Dans les options du document, choisissez le format de sortie SVG.
  2. Définissez le format de papier pour tenir dans une feuille (SVG ne peut pas gérer plus d'une feuille), donc choisissez A0 ou taille personnalisée.
  3. Utilisez Inkscape pour ouvrir votre graphique SVG.
  4. Menu Fichier/Propriétés du document, utilisez la fonction "Adapter la page à la sélection" (corrigez la taille d'après la taille du graphique).
  5. Menu Fichier/Enregistrer sous, choisissez le format PDF.

Vous avez maintenant un grand poster que vous pouvez imprimer. Inkscape ne donne pas de titre au fichier PDF pour imprimer de grands graphiques sur plusieurs feuilles A4/A3, vous devez donc utiliser un autre programme pour le faire. Sous GNU/Linux, l'outil en ligne de commande pdfposter peut diviser un grand fichier PDF en plusieurs au format A4/A3/Lettre/etc. Installez-le via le gestionnaire de paquets de votre distribution (Ubuntu/Debian : sudo apt-get install pdfposter). Par exemple, pour diviser un poster A0 en pages A4 (lisez la page de manuel : man pdfposter) :

 pdfposter -mA4 -pA0 posterA0.pdf posterA0_A4.pdf

Autres logiciels

  • Sous Linux, Windows et Mac, vous pouvez utiliser le programme PosterRazor, qui possède une interface simple à utiliser. Note : PosterRazor ne peut découper que des images, il faudra donc choisir d'enregistrer le graphique au format PNG dans Gramps.
  • Sous Windows, il y a également Govert's PDF Tiler (nécessite .NET 1.1)

Dépannage

  • Si vous rencontrez un problème avec les polices de caractère (caractères manquants) ou une taille de police inadaptée, voir l'exemple 3 sur comment définir manuellement la police.
  • Si vous avez une mauvaise résolution pour le fichier png, un texte illisible, c'est probablement la taille du papier qui est trop petite. Voir l'exemple 1-A: définir la taille du papier, et modifiez également les Options de la mise en page, dans le ratio d'aspect : utilisez automatiquement le nombre optimal de pages, ou taille minimale.
Gnome-important.png
Rapports et identifiants personnalisés

Après l'importation d'un GEDCOM, votre base de données peut contenir des identifiants non-normalisés (par ex. 123I ou 456U non définis dans Édition --> Préférences --> Identifiants ID). Si le rapport généré n'affiche pas correctement vos données, alors essayez l'outil Réorganiser les identifiants Gramps... (Outils --> Modification de la base de données -->Réorganiser les identifiants Gramps...).

D'autres possibilités

  • Vous pouvez générer des graphiques pour les descendants et les ajouter à la galerie d'image pour la personne. Le graphique est disponible pour sur un site internet.
  • Découpage en secteurs
  • Un graphique relationnel en flash, permet de zoomer, se déplacer, ... au-dessus de vos données, ou mieux encore, utilisez le format SVG pour Firefox et Opera, voir DenominoViso.

Comment aider au développement ?

Si vous regardez les spécifications du format dot, vous noterez qu'il y a beaucoup de possibilités avec GraphViz. Si vous avez des connaissances en programmation vous pouvez ajouter des fonctionnalités :

  • plus/au moins de texte dans les boîtes : quel texte et comment les organiser ?
  • Les couleurs. Voir le rapport Lignées familiales : une couleur par famille, pour les relations spécifiques, pour la souche, ...

Lien vers le manuel

Par ailleurs, jettez un oeil sur le graphique relationnel.