web-dev-qa-db-fra.com

Affichage de l'arbre généalogique d'un panda

J'ai une section sur mon site Web qui affiche des informations sur tous les pandas captifs connus, (près de 700) au total.

Chaque panda a une seule page qui affiche son nom, sa naissance/décès et où il a été localisé. La page contient également un lien vers ses parents et ses enfants.

La ou les pages principales présentent un tableau de tous les pandas classés par date ou naissance décroissante. J'aimerais que cette page affiche les pandas ensemble) liés.

Cela semble impliquer une sorte de structure d'arbre généalogique, mais pour de nombreuses familles. Le problème étant que pandas s'accouplent avec différents pandas. Donc une femelle avec 7 oursons pourrait avoir 5 pères différents, qui ont des oursons avec d'autres femelles, cela conduit à un arbre très en désordre.

Quelqu'un at-il des suggestions sur la façon dont cela pourrait être affiché?

11
Andi

Vous avez un joli défi de visualisation des données. Jeter juste cette idée.

Que faire si vous n'affichez pas automatiquement les liens familiaux sur la page principale. Je propose une visualisation interactive des données.

Lorsque vous survolez un panda, les "connexions" s'affichent. Les relations peuvent être affichées avec des lignes et/ou avec un code couleur, par exemple, pour montrer la mère/le père/le frère. Vous pouvez également réorganiser les pandas pour amener les images de la `` famille '' sur un autre plan visuel au-dessus de la page principale afin qu'il soit plus facile de voir la famille ensemble plutôt que dispersée sur l'écran.

La difficulté est de savoir si vous voulez montrer les frères et sœurs liés via la mère ou les frères et sœurs liés via le père. Peut-être que cela peut être une bascule que l'utilisateur définit.

Ex:

  • Toggle est configuré pour afficher les frères et sœurs liés via la mère
  • Survolez un panda pour voir sa famille (ce panda reçoit un surlignage spécial, disons jaune)
  • Lors du retournement, c'est la famille qui se réorganise et apparaît bien comme un arbre comme décrit ci-dessous connecté par des lignes ... Mère est au sommet de l'arbre.
  • Mère montrée en rose
  • Frères et sœurs illustrés en vert
  • Père de chaque frère montré en bleu au-dessus de chaque frère et du panda actuel
  • Vous avez besoin d'un moyen pour fermer cette vue de famille ... lorsque l'utilisateur ferme cette vue, les pandas reviennent à leur position d'origine sur l'écran principal.
7
milesmeow

La structure "arbre généalogique" de pandas que vous essayez de représenter est un graphique acyclique dirigé . Ce n'est pas un tree . Cela ne peut pas toujours être représenté en 2D sans lignes croisées. Avec 700 nœuds et 2 ancêtres chacun, il est probable qu'il soit désordonné.

Les outils de visualisation graphique peuvent aider à résoudre ce problème. Commencez par une simple webapp pour vous faire une idée (mettez toutes les mother->child et father->child paires dans la liste).

Des programmes plus avancés tels que yFiles et GraphViz conviennent aux graphiques complexes et volumineux. Voir galerie pour avoir une idée des résultats possibles.

Une autre approche consiste à essayer de simplifier le problème, par exemple en concentrant arbres ancêtres/descendants sur chaque individu en particulier.

3
dbkk

Un ourson ne peut avoir qu'une mère et un père, pourquoi les relations doivent-elles être regroupées par "famille"? Il semble que vous devez simplement les regrouper par ADN, et non par paires mère/père.


MISE À JOUR:

Grouper par (père <> enfant <> mère) [~ # ~] pas [~ # ~] (père/mère = Child_A, Child_B, etc. .)

Tracez simplement qui est lié à qui par mère et père, ne gardez pas la trace de qui sont les frères et sœurs ... à moins que ce ne soit pour une raison d'accouplement. Si vous comparez alors pour des raisons d'accouplement à la population générale, donnez simplement un pourcentage ou une évaluation de la condition physique en ce qui concerne le chevauchement génétique.

MISE À JOUR 2:

Andi , est-ce la page d'index Panda:

Si oui, comment prévoyez-vous de regrouper les Panda où un ou plusieurs parents sont "inconnus".

2
blunders