Changes

Jump to: navigation, search

Howto: Make a relationship chart

4,254 bytes added, 9 March
no edit summary
This is a Howto on how to make a relationship chart (can be ancestors, descendants, ...) with GRAMPS 2.2.x. and the Relationship plugin.[[Image:RelationshipChartDescendants.png|right|thumb|200px|An example chart]]
 
 
{{languages|Howto: Make a relationship chart}}
How to make a relationship chart (for either ancestors, descendants, ...) with Gramps 5.x. and the [[Gramps_{{Version manual}}_Wiki_Manual_-_Reports_-_part_5#Relationship_Graph|Relationship graph report]].[[File:RelationshipChartDescendants-example-41.png|right|thumb|300px|An example chart]]
== Before you start ==
The Relationship graph report is made with uses the graphviz GraphViz backend, so which should already be installed, if not you will need to install [http://graphviz.org graphviz[Output_formats#Graphviz|GraphViz]] (on linux, use your package manager).
[[Category:Tutorials|Make a relationship chart]] == Before you start ==GRAMPS Gramps can produce charts, but to view them, you need other programs. We recommend that you install the following:* [http://graphviz.org [Output_formats#Graphviz|GraphViz]]: '''required''' for the creation of the relationship charts
* [http://www.inkscape.org/ Inkscape]: for viewing and editing svg charts, export to png
* [http://www.gnu.org/software/gv/ gv], [http://linuxappfinder.com/package/kghostview kghostview]: for viewing ps charts
* ps2pdf: for converting ps to pdf
* [http://www.adobe.com/products/acrobat/readstep2.html adobe reader], [http://linuxappfinder.com/package/kpdf kpdf]: for viewing pdf charts
* [http://www.libreoffice.org/download LibreOffice] or [http://www.openoffice.org/ openofficeOpenOffice], or [http://www.kofficecalligra-suite.org/ kofficeCalligra]: for viewing odt documents
== Filters: what persons to print ? ==
=== What are filters?===
In GRAMPS Gramps you can define filters to make a selection of individuals, see [[Example_filters| Examples of filters]]. In the relationship chart all custom person filters you made will be available, as well as the standard descendants and ancestors filters. These last start from the active person.
{{man tip|style="width:80%;margin-top:+.7em;margin-bottom:+.7em;background-color: #c0f0ff;border:1px solid #ccc; padding: 5px" align="center"|-Tip|You can add [[Image:Gnome-important.pngStep_relationships|stepchildren]]|<center style="font-size:100%">'''Tip:''' You can add to a family stepchildren by setting the relationship of ''Relationship to Mother'' (or Father) for the child to ''stepchild'' in the mother [[Gramps_{{Version manual}}_Wiki_Manual_-_Entering_and_editing_data:_detailed_-_part_1#Child_Reference_Editor|Child Reference Editor]]. The other parent's Relationship should remain set to ''step childBirth''. In doing so, these children will be become part of a descendant report without the need to create a custom filter to include them.</center>|}}
=== How many people ?===
== Example 1-A: a descendant chart ==
[[ImageFile:RelationshipChartDescendants-example-41.png|right|thumb|200px220px|A descendant chart, click for details]]Download Use the [[httpexample.gramps]] that came with your install, or download [https://gramps.svnraw.sourceforgegithubusercontent.netcom/viewvcgramps-project/gramps/trunkmaintenance/gramps2gramps50/example/gramps/example.gramps?revision=10822 example.gramps], save to a file, create a new database in GRAMPS Gramps called example.grdb, and import the example.gramps data into it.
If not the case, set the active person to ''Garnervon Zieliński, Lewis AndersonSr''.
To make a descendant chart with the relationship report, choose the menu item
'''{{man menu|Reports -> Graphical reports Graphs -> Realtionship graphRelationship Graph...}} In the Bottom dialog:* '''Document Options''' set the '''Output Format'''to .png
In the dialog, set the format to .png and chose Chose the following in the tabs available:#'''Paper Options '''-> Size : Custom Size (Set width and height to ''10000 '' cm, or some other large value)#'''Report Options '''-> ''Filter: Ancestors '' '''Descendants of Garnervon Zieliński, Lewis Andersson Anderson Sr''' #'''GraphViz Layout optons '''-> ''Graph Direction:'' '''Horizontal (<-)'''#'''GraphViz Options'''-> ''Aspect ratio: '' '''Compress to minimal size'''
(I sometimes experience problems setting the sizes in the Paper options dialog. A workaround is Select '''OK''' to use generate the example using graphviz code in example 3 belowchart.)
The result (using gramps 2.2.7) can be seen to the right. You can use print this on a dedicated printer (check dpi If required change the '''GraphViz Options''' DPI of png!file.), or if you use the default DPI of 72 you can use this image on a website to share. In the last caseexample below, you can use the trick tip explained in [[Make flash plugin from a png]], to make the resulting graph easier to navigate.
In the chart image you see , males in are blue, females in are pink and the yellow balloons indicate a family node in which a marriage date is printed (if known). You can select not to see this family node by deselecting in the '''Graphviz OptionsGraph Style''' tab the option ''Show family nodes''.
== Example 1-B: a chart with ancestors ==
[[Image:RelationshipChartAncestors_small.png|right|thumb|350px|An ancestor chart. For the detailed image, [[Media:RelationshipChartAncestors.png| click here (853kb!)]]]]Download and open the example.gramps file as in Example 1-A 
Set ''Warner, Carl Thomas'' to be the active person.
Repeat the process in Example 1-aA, but choose the filter ''Ancestors of Warner, Carl Thomas'' this time.  [[File:RelationshipChartAncestors small.png|right|thumb|300px|Example Relationship ancestor chart. (For the detailed image, [[Media:RelationshipChartAncestors.png| click here (1.49mb!))]]]] You can see the result to the right.
You can see the result to the right. This is already an extremely large graph. It can only be readily viewed in a good image viewer. For printing you need to resort to printing on several pages, or you need access to a large plotter.
It can only be readily viewed in a good image viewer.
For printing you need to resort to printing on several pages, or you need access to a large plotter.
{{-}}
== Example 2: A chart with ancestors, descendants and their families ==
{{stub}}<!--example 2 & 3 and section below them still need a bit of an update-->{{man note|Note: |This example uses filters. See [[Example filters| Examples of filters]] for an introductory example.}}<!-- Can not find Cristiansen, Frances in example.gramps -->
Open the file example.gramps and select Cristiansen, Frances as the active person.
Make sure that "At least one rule must be fulfilled" is chosen, so that we get both ancestors and descendants!
 
[[Image:RelationshipChartAncestorsAndDescendants_small.png|center|thumb|450px|A large chart. For the detailed image, [[Media:RelationshipChartAncestorsAndDescendants.png| click here (363kb!)]]]]
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:
* ''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.  [[Image:RelationshipChartAncestorsAndDescendants_small.png|right|thumb|450px|Fig. A large chart. For the detailed image, [[Media:RelationshipChartAncestorsAndDescendants.png| click here (363kb!)]]]] The result is visible to the right (363kb, large file !){{-}} == Example 3: Generating the graph by using the Graphviz command line tool == {{man tip|Tips|Some tips around GraphViz are [http://bernaerts.dyndns.org/linux/74-ubuntu/287-ubuntu-graphviz-viewer-gnome-thumbnailer available].}} In the menu, select {{man menu|Reports -> Graphs -> Relationship Graph...}}.
== Example 3In the Bottom dialog:* '''Document Options''' set the '''Output Format''' to ''Graphviz file'', Generating which defaults to the graph gv extension. This file is then a dot file which can be processed 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 Eg, to correctly display make from the family nodes (yellow balloons)gv file a ps file, all occurrences of the word ''ellipse'' should be changed to ''egg'' (see [httpGramps uses://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 sizedot -Tps:cairo -o"file.ps" "file.gv"
In for svg: dot -Tsvg -o"file.svg" "file.gv" Choose the menufilter you want to use, select '''Reports -> Code Generators and set also as many of the other options as possible to the desired values (as explained in Example 1-> Relationship graph'''.A)
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 Graphviz '''.gv''' dot file is a text file with a well explained documented structure, for extra info(See: [http://www.graphviz.org/Documentationdocumentation/ graphviz.org/documentation] )  digraph GRAMPS_graph { bgcolor=white; center="true"; charset="utf8"; concentrate="false"; dpi="72"; graph [fontsize=14]; ..php www.graphviz.org then the actual Gramps data are shown: I0585 [ shape="box" fillcolor="#e0e0ff" style="solid,filled" label="Kristensen, John Francis\"Chick\"\n(1889-10-10 - 1938-10-23)" ];
You can optimize the layout by making changes in the file.
*For paper size, : look around line 36-37 for two lines that define 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 and the picture quality will be poor (eg unreadable text).
*You can also change the font by adding a font family. Look for the lines
node [style=filled fontsize="12"];
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
...
 
== Printing large graphs ==
If you want to print large graphs (especially with photos and other details) in reasonable readable quality, the following steps should work:
# In Document Options choose SVG as output format.
# Setup paper format to fit graph into one sheet (SVG cannot handle more than one sheet), so choose A0 or custom size.
# Use [http://www.inkscape.org/ Inkscape] for opening SVG graph.
# Menu File/Document properties, use "Fit page to selection" function (fix size accordingly to graph size).
# Menu File/Save as, choose PDF format.
 
You now have a large poster you could print. Inkscape cannot tile PDF for printing large graphs on many A4/A3 sheets, so you must use another software to do it for you. At home, you can print this on multiple A4/A3 sheets with other programs:
* In Linux, the poster command line utility can split a poster over A4/A3/Letter.
*# Install it via your package manager (or on CLI type for eg Ubuntu: ''sudo apt-get install poster''
*# Read the man page, to eg split an A0 poster which is in postscript format, over 16 A4 do:
poster -iA0 -mA4 -pA0 posterA0.ps > posterA4.ps
* For Linux, Windows and Mac, you can also use the program [http://posterazor.sourceforge.net/ PosterRazor], which has an easy to use interface.
* For Windows, you can use [http://www.noliturbare.com/pdf-tools/pdf-tiler Govert's PDF Tiler] (can maybe run on Linux too using [http://www.mono-project.com/Main_Page Mono], needs .NET 1.1)
== Troubleshooting ==
*If you encounter bad fonts (missing characters) or wrong fontsizes, see [[Howto:_Make_a_relationship_chart#Example_3:_Generating_the_graph_by_using_the_Graphviz_command_line_tool|Example 3 ]] on how you can set the font yourself.*If you have missing lines in Relationship (and other similar) Graph pdf output; then use a larger paper size (or use multiple pages).(See {{bug|10028}})*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 [[Howto:_Make_a_relationship_chart#Example_1-A:_a_descendant_chart|Example 1-A]]: set the papersize of number of pages to a high number, but select in '''Layout GraphViz Options''', in ''Aspect ratio'': <tt>automatically use optimal number pagesFill the given area</tt>, or use <tt>Compress to minimal size</tt>
{{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 {{man menu|Edit --> Preferences --> ID Formats}}). If generated reports do not properly display data, then try [[Gramps_{{Version manual}}_Wiki_Manual_-_Tools#Reorder_Gramps_ID|Reorder Gramps IDs tool]] ({{man menu|Tools->Family Tree Processing->Reorder Gramps IDs}}).}} == Further cool Additional things to do try ==
* 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 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 OperaChrome, see [http[Addon://www.gramps-project.org/wiki/index.php?title=UnsupportedPlugins#DenominoViso_-_HTML_Ancestors_page DenominoViso|DenominoViso]]
== Want to help developing ? Help improve the Graph reports ==If you go through examine the dot specifications, you will note that much more can be done with graphicsGraphViz output. If you have programming skills you can add some functionality:* add the default picture (planned for GRAMPS 3.0 based on ideas of the [[Familylines plugin]])* more/better Improved text in the boxes: what text and how to organize it?* coloringColoring. See the [[Familylines pluginGramps_{{Version manual}}_Wiki_Manual_-_Reports_-_part_5#Family_Lines_Graph|Family Lines Graph]]: for a color per family, for specific relations, for the central person, ... == See also ==* [[Gramps_{{Version manual}}_Wiki_Manual_-_Reports_-_part_5#Relationship_Graph|Relationship Graph - User Manual]]. [[Category:Tutorials|Make a relationship chart]][[Category:How do I...|R]]

Navigation menu