Printable visualization of the complete family tree

I am using Gramps 5.1.2 on Ubuntu 20.04. I am a new user to the program. In order to print/plot a large poster of the complete family tree I am looking for a visualization component which is capable to do output something beautiful.

Currently, I am looking at Topola Genealogy Viewer and its plugin integration Interactive Family Tree. It looks great in general. I could not yet find out how to:

  1. Unhide all branches to render the complete graph. See: Rendering the complete family tree · Issue #84 · PeWu/topola-viewer · GitHub
  2. Render images in general. Seems I haven’t understood how to use the plugin. See: Gramps / Interactive Family Tree / net::ERR_BLOCKED_BY_CLIENT · Issue #82 · PeWu/topola-viewer · GitHub

Which other visualization tools can you recommend? Even tools outside of Gramps are welcome.

I tried this many years ago when I could use a roll-paper A0 plotter but result wasn’t great at all because there were too many people on the graph (only 600 at that time).

The mess comes from the fact that a complete family DB is no longer a tree because generations have not the same duration and implexes become relatively frequent when more and more people are involved. Inter-generation connectors tend to cross, making impossible to follow lineage.

I output the complete DB as a GraphViz report and I tried to tune the GraphViz source (which required to learn and understand this source) to minimise crossings (if possible) and also to group in different sections of the paper whole branches of the ancestry. This only marginally improved the clarity of the graph, not speaking of the readability of the boxes which were rendered rather small.

What I finally came up with in recent years where my DB is on the order of 6000 people and still growing is to create smaller “focused” charts on selected parts. For instance, I have a descendant chart from the oldest ancestor, but in general descendant charts collect too many people and after ~10 generations the chart becomes too wide. I also have many ancestor charts which have the advantage of a predictable number of persons at each generation (except with implexes): 2n.

I wrote a bash script to patch the resulting chart (I chose SVG format to integrate them to my NarrativeWeb server) and add clickable hyperlinks to reference the people pages.

I have not yet automated the process of jumping from one partial chart to another one.

Considering the difficulty to get a satisfying global chart, I’d rather recommend you create several partial charts with clear indication of where these charts meet.

1 Like

Thank you for sharing your experience. I can totally understand that it is challenging to render the complete graph. There is however certain parts of the graph which I love to display. On the example of Topola I am however only able to click on one person which directly influences which part of the graph will be shown. It would be great if I could select multiple “hotspots”.

I found out that Ahnenblatt added a new full tree rendering (German: Komplette Verwandschaft) in the recent version 3.35. The tree is rendered by duplicating a couple of people to allow drawing lines correctly. I am not sure if I like it - just to mention it here for completeness.

As mentioned by @emyoulation in an earlier discussion, you can import a GEDCOM into yEd.

I havent played much with it myself, but an option that exist is using Graphs View plugin, use the All Connected button, and then the Print button, I think its limited to 1000 people or something at the same time but I personally dont have that yet.

Will save this thread for when I eventually get to a point I want to do this, and consider what I like the most.

1 Like

Thanks for pointing this out. The Graphs View menu option and toolbar icon are not shown for me. I updated to Gramps 5.1.5-1 just now. I seem to have satisfied the install requirements as stated in the wiki. If you have a hint how to install/enable the add-on that would be great.

You could run the Prerequisites Checker addon and see if the pieces you added are being recognized.

Here is the current output of the Prerequisites Checker:

Diagnostic Gramplet to help evaluate if Gramps has all prerequisites installed.

You have Gramps 5.1.5. Congratulations, you have the current version.

REQUIREMENTS
The following packages MUST be installed (Requires the minimum version or greater.):

  • Python 3.8.10 (Passed: version 3.3.0 or greater installed.)
  • GTK+ 3.24.20 (Passed: version 3.12.0 or greater installed.)
  • PyGObject 3.36.0 (Passed: version 3.12.0 or greater installed.)
  • Cairo 1.16.0 (Passed: version 1.13.1 or greater installed.)
  • Pycairo 1.16.2 (Passed: version 1.13.3 or greater installed.)
  • Pango 1.44.7 (Passed: version 1.29.3 or greater installed.)
  • PangoCairo 1.0
  • Berkeley Database library (bsddb3: 5.3.28) (Python-bsddb3 : 6.2.7)
  • SQLite Database library (sqlite3: 3.31.1) (Python-sqlite3: 2.6.0)
  • xdg-utils (Manual check see instructions link)
  • librsvg2 (Manual check see instructions link)
  • language-pack-gnome-xx (Manual check see instructions link) for your Language

STRONGLY RECOMMENDED
The following packages are STRONGLY RECOMMENDED to be installed (needed for geography and charts):

  • osmgpsmap 1.0 (Passed: version 1.0 or greater installed.)
  • Graphviz 2.43
  • PyICU 2.4.2(ICU 66.1)
  • Ghostscript 9.50
  • python-fontconfig not found, (Requires version 0.5.x)

Optional
The following packages are optional:
Gtkspell enables spell checking in the notes.

  • GtkSpell not found (Requires version 3.0 or greater installed.) (enchant module: not found)
  • rcs installed TBD (Requires version 5.9.4 or greater installed. If not on Microsoft Windows)
    Python Image Library (PIL) is needed for cropping images and LaTeX output.
  • (PILLOW 7.0.0)
  • GExiv2 : 0.10 (Exiv2 library : not found)
  • geocodeglib 1.0 (Passed: version 1.0 or greater installed.)
    For addon Networkchart, font White Rabbit provides an extremely readable result.
  • Installed font: found another font

Development & Translation Requirements
The following packages should be installed if you intend to translate or do any development (addons etc):

  • gettext (msgfmt): 0.19.8.1
  • intltool-update: not found
    Sphinx is a tool that builds the Gramps development documentation and man pages
  • Sphinx: not found

Optional packages required by Third-party Addons
Prerequistes required for the following Third-party Addons to work:

  1. Addon:Family Sheet : (PILLOW 7.0.0)
  2. Addon:Graph View : (GooCanvas:2.0)(PyGoocanvas: TBD?)(Graphviz 2.43)
  3. Addon:PedigreeChart : (NumPy : 1.17.4 )
  4. Addon:Network Chart : (networkx 2.4)(Graphviz 2.43)
    and one of either: (pydotplus: not installed) or (pygraphviz: not installed)
  5. Addon:GenealogyTree : (lualatex :not found)(PILLOW 7.0.0)
  6. Addon:HTMLView : (Webkit: not installed )
  7. Addon:GoogleMapKML : (Google Earth on Desktop : not found.)
  8. Addon:Webconnect Pack : (libwebconnect : not found) (Requires the gramps addon listed under ‘Plugin lib’)
  9. Addon:TMG Importer : (DBF not found.)(Requires version 0.96.8 or greater installed.)
  10. Addon:PostgreSQL Database library Support : (PostgreSQL 120002)(psycopg2 : 2.8.4 (dt dec pq3 ext lo64))
  11. Addon:Edit Image Exif Metadata : (PILLOW 7.0.0) GExiv2 : 0.10 (Exiv2 library : not found)
  12. Addon:Photo Tagging Gramplet : (NumPy: 1.17.4)(OpenCV facedetection: not found.)
  13. Addon:Lxml Gramplet : (lxml: 4.6.5.0)(libxml: 2.9.10)(libxslt: 1.1.34)
  14. Addon:MongoDB : * Requires: MongoDB TBD / pymongo TBD

Does Addon:Graph View : (GooCanvas:2.0)(PyGoocanvas: TBD?)(Graphviz 2.43) mean that the Graph View add-on should be working?

When you generate a NarrativeWeb report (for viewing your Gramps data in a web browser+), you can request an ancestry graph in each person page with as many as 9 generations. This is only ancestry, not descendants but it is quite nice as partial graphs.

IMHO, the graph size needs to be adjusted through CSS to be more compact but this is personal taste and is easy to be done if you know CSS.

(+) Though NarrativeWeb outputs a collection of HTML pages, you don’t need to set up a web server on your computer. You can display the pages with “Open File” in your browser and after opening the first page (usually index.html) you click on the links, exactly the same as on internet sites.

The Graph View is an addon and is not installed with the main Gramps code.

See the Installing Addons in Gramps. If you have already run this and not installed addons, you may have to uncheck the Do not ask about previously notified addons box. An addon like Graph View will not appear until you restart Gramps. It will automatically install itself and display with the other Charts views.

1 Like

Thank you for pointing out the Graph View add-on. Finally, I found it in the add-ons manager and I was able install it.

It looks very promising - I have to check - but it looks like it renders the complete graph. Once I output the *.svg I could even manually tweak it. I also like that I can use custom avatar images. It would be nice to be able to select custom fields like occupation.

I tested the Narrative Web Site report. It is great but does not fit for what I am trying to achieve. In the end I want a large poster print out of the whole family tree. But thanks for sharing!

1 Like

Ah, should maybe have mentioned you have to install it.

If you havent found it yet, You can change the line in between people, between 3 different ones in the right click menu.

I agree that it would be nice if you could choose to show more information if you wanted to (but should be off by default)

Thanks for the hint. I haven’t discovered the right click menu. :wink:

Do you know if I can change the date format (currently: YYYY-MM-DD) for the cards in the Graph View rendering?

The date format is a universal setting for all views. You can set this default in Preferences’ Display tab (menu >> Edit >> Preferences)

In addition every view has a Configuration option. (menu >> View >> Configure). There is also an Icon on the toolbar for these settings. Gramps-config In addition to the view conguration, if you have any apps/gramplets loaded in the view’s side- or bottombar that allow options, these will be found in this config on their own tabs. Not every app/gramplet has this option.

The Graph View allows a right-click in a blank space for some view settings. This is different than a right-click when your mouse is hovering over a person or marriage.

I encourage all users (new and old) to spend time finding all of these options as they explore a view. Lots of options can be accomplished without having to navigate the main menu and toolbar options.

2 Likes

I also discovered ged2dot. The Python script is available as an extension for LibreOffice. I managed to get it running under Ubuntu.

The rendering looks pretty good. I haven’t found out if it can render the complete family tree. It ask for a family when being started.

  • The generated graphic can be saved via right click menu as SVG and therefore be edited in InkScape or other vector image programs.
  • Images are missing in my case. Not sure why.

One other option to consider is the Relationship Graph. Menu >> Reports >> Graph >> Relationship Graph.

Other than a few text reports for research and the Narrative Web I am not a big report users

1 Like

Thanks. :+1: The Relationship Graph report looks nice too. It however does not contain very many information and can’t be configured to do so as far as I can see. Also, I better like the positioning to respect that people of the same generations being located close to each other.

I am now exploring the built-in Family Lines Graph report. It looks promising and renders a lot of information. Now I would like to test how it renders the full graph. Therefore, I have to enter the People of interest in the configuration dialog. This feel very effortful given that I have about 200 people to include. The addon already picks up parents and children from what I understand from source code. It still is too much to do manually.

Is there a way to include all people without much effort?
Does anyone know how to manipulate the source code to do so?

The source code is located here on my machine:

/usr/lib/python3/dist-packages/gramps/plugins/graph/gvfamilylines.py

You need not mention all persons in People of interest: because the “collecting” algorithm recurses along the ancestors and descendants. It will list spouse(s) for people of interest but will not follow this line unless you add these spouses to people of interest.

So, you challenge is to determine the minimal set of persons whose ancestry and descendance will cover your database. If your DB is really a tree (by mathematical definition), only listing the root is sufficient. In other cases, your DB is rather a “net” with possibly not connected components. For better readability, I recommend you process the components separately. Within each component, you’ll have to determine “key persons” to add to People of interest to achieve full component coverage. Usually, they are spouses to ascendants/descendants of the “main person”, the one you choose as a seed in following family lines.

One boring thing is parameters you set in this dialog are not saved and you have to type everything again when you want to print a new report. I wrote a patch to save the settings but this patch is not “production-quality” and I won’t release it until I have understood Gramps internals. However I am ready to share it if you feel brave (and backup your DB before testing it).

3 Likes

I would be interested to see your patch. It might offer a way to sneak in the GUIDs or person names needed to render all. I surely backup my project regularly.

I also followed your advise to identify key persons in the “net”. It turns out very cumbersome and also hard to verify if all have been included. I prefer an automatic solution here which I can execute over and over when I change the family tree over time.