У меня есть очень простые данные родословной, которые я хотел бы визуализировать графически. Пример данных здесь
Я пробовал с kinship2, но безуспешно - см. здесь предыдущие проблемы с kinship2
Я также пробовал с igraph, но не смог получить правильный график. Мне удалось с помощью приведенного ниже кода получить хорошее представление о женских родословных.
library(igraph)
library(dplyr)
GGM_igraph <- read.csv("example_data.csv")
mothers=GGM_igraph[,c('Ring','Mother','famid')]
fathers=GGM_igraph[,c('Ring','Father','famid')]
links<-left_join(mothers, fathers)
g=graph.data.frame(links)
этот скрипт взят из этого вопроса изначально
G_Grouped = g
E(G_Grouped)$weight = 1
## Add edges with high weight between all nodes in the same group
for(i in unique(V(g)$famid)) {
GroupV = which(V(g)$famid == i)
G_Grouped = add_edges(G_Grouped, combn(GroupV, 5), attr=list(weight=10))
}
## Now create a layout based on G_Grouped
set.seed(567)
LO = layout_with_fr(G_Grouped)
## Use the layout to plot the original graph
par(mar=c(0,0,0,0))
# then plot the graph
plot(g, vertex.color=links$famid, layout=LO,
vertex.size = 8,
vertex.label.cex=.7,
vertex.label.color = "black",
edge.arrow.size = 0.25,
edge.arrow.mode = 1)
Что я хотел бы сделать, так это: 1) включить самцов в тот же график, поскольку у некоторых из них было потомство от более чем одной самки за всю свою жизнь 2) вручную назначить цвета для каждой семьи. На данный момент он автоматический, который затем назначает матерям (большинство из которых не имеет семьи, поскольку они являются основателями) случайный цвет, а также повторно использует некоторые цвета, так как их недостаточно в палитре по умолчанию.
dput
. Вероятно, было бы немного полезно иметь некоторые образцы данных для работы. - person WaltS   schedule 20.05.2020dput
или с тем, как включить их в вопрос. Код, который я получил в вопросе, загрузит набор данных, все, что нужно для добавления пути к файлу. Я уменьшил набор данных, как было предложено. Поскольку я не знаком с ним, было бы здорово понять преимуществаdput
по сравнению с тем, что у меня уже есть. Ваше здоровье - person TomCLewis   schedule 22.05.2020