Как показать браки в "семейном дереве" на d3.js?
Я разработчик HTML/CSS, исследуя решения javascript для создания "дерева семьи", который должен демонстрировать браки (вне семьи, конечно) значимым образом.
По сути, я смотрю, как он основывается на дендрограмме, основанной на d3.js, например. http://bl.ocks.org/4063570, но я изо всех сил пытался найти что-нибудь там, что выражает "браки".
Ниже приведено изображение данных, на которых я опишу следующее:
![here's my data]()
Любая помощь/предложения/ссылки будут высоко оценены! Я просто не знаю, возможно ли это, но хотелось бы использовать d3.js, поскольку он выглядит так хорошо сделанным и, по-видимому, универсальным.
Ответы
Ответ 1
Есть несколько вариантов, но я считаю, что каждый из них потребует немного работы. Это помогло бы, если бы был один стандарт представления семейного дерева в JSON. Недавно я заметил, что у geni.com есть достаточно углубленный API для этого. Возможно, кодирование против их API было бы хорошей идеей для повторного использования...
- Родословное дерево -
Родословное дерево может быть достаточным для ваших нужд. Вы сделали бы законную связь, где, если бы вы нажмете на свое имя, график будет перерисовываться, чтобы вы могли видеть их родословную.
- Дерево компоновки скобок -
Подобно родовому дереву, но двунаправленному, это Дерево компоновки скобок позволяет обрабатывать вид типа "мои родители, дедушки и бабушки, дети, внуки". Подобно Pedigree Tree, вы можете привязать индивидуумов к перегруппировке скобки на node.
- Макет, основанный на силе -
Есть несколько интересных силовых макетов, которые кажутся многообещающими. Взгляните на этот пример силового макета с интеллектуальными метками. Корректировка алгоритма определения "силы" может сделать это очень красивым деревом с более старыми поколениями выше или ниже новых.
- Кластерная дендрограмма (почему она не работает) -
Макеты d3.js, которые я видел, которые лучше всего подходят для семейных деревьев, предполагают, что один node является родителем, тогда как вам нужно представить родителя как комбинацию (визуально "T" между ними) узлы: один node, который является членом вашего дерева, и один плавающий node, который представляет зятя. Настройка дендрограммы кластера для этого должна быть осуществимой, но не без существенных изменений.
Если вы - или кто-то другой - решайте это, дайте мне знать. Я хотел бы видеть (и извлекать выгоду) из работы и, возможно, вносить в нее вклад, если это возможно.
Ответ 2
Мне также нужно было рисовать родословные с D3, поэтому я понял, как это сделать. У меня есть созданные примеры, которые показывают основные функции, а затем добавляют дополнительные функции, такие как расширение и показ потомков.
Я не знаю, как вы хотите отображать браки. Браки присущи родословной родословной, но не в диаграмме нисходящего. Код может быть адаптирован для отображения супругов в узлах-потомках.
Вот как выглядит это. Стиль можно настроить по желанию.
![enter image description here]()
Ответ 3
Это требует некоторой работы, но, судя по всему, идея, которую я предлагаю, представляет собой силовую компоновку со специальным видом node, называемым отношением, которые не рисуют круг. Он представляет собой привязку между двумя субъектами и может быть родителем большего числа узлов.
В d3 вы можете расширить все структуры данных в соответствии с тем, что вы хотите, тогда есть больше работы по связыванию данных, но все это настраивается. Вот пример структур данных, которые я использовал бы в макете силы.
{
"nodes": [
{
"type": "root",
"x": 300,
"y": 300,
"fixed": true
},
{
"type": "male",
"name": "grandpa"
},
{
"type": "female",
"name": "grandma"
},
{
"type": "relationship"
},
{
"type": "male",
"name": "dad"
},
{
"type": "female",
"name": "mum"
},
{
"type": "relationship"
},
{
"type": "male",
"name": "I"
}
],
"links": [
{
"source": 0,
"target": 2
},
{
"source": 1,
"target": 2
},
{
"source": 0,
"target": 3
},
{
"source": 3,
"target": 4
},
{
"source": 4,
"target": 6
},
{
"source": 5,
"target": 6
},
{
"source": 6,
"target": 7
}
]
}
Надеюсь, я кое-что разъяснил о возможностях d3.
Ответ 4
Вашикаран - это очень вдохновляющее искусство загипнотизировать любого человека и вещь, в основном человека, использующего этот акт для решения любой проблемы в жизни, они избавляются от любой проблемы в любое время, это очень мощная мантра и очень помогает человеку, оказывающему услуги специалистом-васикараном. позвоните сейчас: - (+ 91-9876706621) http://www.famousvashikaranspecialist.com/
введите описание изображения здесь