Difference between revisions of "Comment produire un graphique relationnel"

From Gramps
Jump to: navigation, search
(Example 3, Generating the graph by using the Graphviz command line tool)
m (Préparation dans GRAMPS)
Line 99: Line 99:
 
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 (dot)". Cliquez sur {{man button|Valider}}. Vous devez obtenir un fichier ".dot".
 
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 (dot)". Cliquez sur {{man button|Valider}}. Vous devez obtenir un fichier ".dot".
  
Ce fichier est du type texte , ainsi il peut être ouvert avec un éditeur de texte.
+
Ce fichier est du type texte, ainsi il peut être ouvert avec un éditeur de texte.
  
 
=== Changements manuels ===
 
=== Changements manuels ===

Revision as of 15:50, 12 July 2009


Ceci est un tutoriel pour réaliser un graphique relationnel (pouvant être les ascendants, descendants, des individus filtés, toute la base !) avec GRAMPS-3.0.x et 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 :

  • Graphviz : nécessaire pour les graphiques relationnels.
  • Inkscape : pour voir ou éditer les graphiques 'svg'.
  • openoffice, koffice : pour voir et éditer les documents 'odt'.

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épendant 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 Make flash plugin from a png, 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 (dot)". Cliquez sur Valider. Vous devez obtenir un fichier ".dot".

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

Changements manuels

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

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

...

les données GRAMPS sont affichés :

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).
  • You can also change the font by adding a font family. Look for the lines
node [style=filled fontsize="12"];
and change that into eg
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).

Generation of the 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:

dot -Tjpg -oreport.jpg report.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

...

Troubleshooting

  • If you encounter bad fonts (missing characters) or wrong fontsizes, see Example 3 on how you can set the font yourself.
  • 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: automatically use optimal number pages, or use minimal size
Gnome-important.png
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 Reorder GRAMPS IDs tool (Tools-->Database Processing-->Reorder GRAMPS IDs).

Further cool things to do

  • You can make descendant charts and add them to the media gallery of the person. Like that, the chart is available from the website.
  • offer a chart on your website as a flash relationship graph, enabling zooming, moving, ... over your data or just use SVG for Firefox and Opera, see DenominoViso

Want to help developing ?

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, ...

Lien vers le manuel

Par ailleurs, jettez un oeil sur le graphique relationnel.