У меня есть данные, которые я хотел бы отобразить как сеть с пакетом geo mnet. Некоторые узлы окрашены в соответствии с категориальными данными.
Тем не менее, я считаю, что легенда вводит в заблуждение, поскольку, кажется, описывает ребра, а не узлы: исходная сеть . Я бы хотел, чтобы в легенде (и только в легенде) отображалась только одна точка для каждого элемента.
До сих пор мне удалось изменить каждую часть символа с помощью соответствующего кода ( netowrk с измененной легендой ), но мне трудно понять, как я могу просто удалить символ c и выбрать свой собственный.
Я пытался установить show.legend = FALSE в функции geom _net, но не может воссоздать его с помощью scale_shape_manual или аналогичных функций.
Воспроизводимый пример:
library(geomnet)
data("football")
# data step: merge vertices and edges
ftnet <- fortify(as.edgedf(football$edges), football$vertices)
# create data plot
gg <- ggplot(data = ftnet,
aes(from_id = from_id, to_id = to_id)) +
geom_net(layout.alg = 'fruchtermanreingold',
aes(colour = value, group = value,
linetype = factor(same.conf != 1)),
linewidth = 0.5,
size = 5, vjust = -0.75, alpha = 0.3) +
theme_net() +
theme(legend.position = "bottom") +
scale_colour_brewer("Conference", palette = "Paired") +
guides(linetype = FALSE)
gg
# my attempt: change the type of line and point in legend symbol
gg <- gg + guides(colour = guide_legend(override.aes = list(linetype = c(point = 0), shape = 8)))
Большое спасибо за вашу помощь.