Редактировать : мне удалось установить только определенные узлы, которые я хотел изменить форму. Однако мне все еще интересно, на что указывает эта ошибка.
Решение:
V(net)$shape <- "circle"
V(net)[c(2, 4, 7, 8, 9)]$shape <- "square".
Проблема:
Я пытаюсь построить сеть, но у меня есть проблемы с изменением формы вершины. Я думаю, что это как-то связано с моими данными, но я не знаю, где искать мою ошибку.
Рабочая версия:
Этот код работает нормально. Я создаю фрейм данных с информацией об узлах и вершинах и использую его в функции igraph graph_from_data_frame () для создания структуры данных для построения графика. Я создаю матрицу, которая содержит координаты x и y моих вершин, и затем строю свою сеть. На графике вершины расположены правильно в соответствии с «l».
# Get nodes and links
nodes <- getNodes(site = site, datapath = pathdata)
links <- getEdges(site = site, datapath = pathdata)
# Get net
net <- graph_from_data_frame(d=links, vertices=nodes, directed=T)
# Lay-out and plot
l <- matrix(c(as.numeric(nodes$X), as.numeric(nodes$Y)),ncol=2)
plot(net, layout=l)
Проблема:
Однако, если я хочу изменить стандартную форму вершин (окружности) на квадрат, я получаю ошибку, которую не могу разместить.
nodes <- getNodes(site = site, datapath = pathdata)
links <- getEdges(site = site, datapath = pathdata)
net <- graph_from_data_frame(d=links, vertices=nodes, directed=T)
l <- matrix(c(as.numeric(nodes$X), as.numeric(nodes$Y)),ncol=2)
V(net)$shape <- "square"
plot(net, layout=l)
Я получаю ошибку « Ошибка в y1 - y2: нечисловой аргумент для двоичного оператора ». Я думал, что это может иметь отношение к позициям в матрице "l", но все они числовые:
is.numeric (л)
[1] ИСТИНА
Я считаю, что проблема должна быть в остальных данных, может быть? Кто-нибудь знает, куда указывает эта ошибка? Мой фрейм данных с информацией об узлах и вершинах довольно большой, поэтому я не могу разместить их здесь, но все типы выглядят нормально (числовые, то есть числовые и т. Д.). Спасибо!