#r #ggplot2 #legend #levels
Вопрос:
Я не могу заставить drop = false работать, даже если я определяю уровни. В моей легенде по-прежнему отображаются только метки, представленные в данных, а не все. Как это исправить?
Воспроизводимый пример:
df_roles <- structure(list(name = c("Afghanistan", "Albania", "Algeria",
"Angola", "Antigua and Barbuda", "Argentina"), connectivity = c(-0.705966241952489,
-0.0731279772540426, -0.356534047286986, -0.356534047286986,
-0.846596967441032, 1.71626320831937), participation = c(0.56,
0.4140625, 0.611570247933884, 0.631111111111111, 0.666666666666667,
0.732510288065844), role = structure(c(2L, 2L, 2L, 3L, 3L, 6L
), .Label = c("Ultra peripheral", "Peripheral", "Connector",
"Kinless", "Provincial", "Connector Hub", "Kinless Hub"), class = c("ordered",
"factor")), result = c(-0.395341095493394, -0.030279553081752,
-0.218045615696173, -0.225012598732231, -0.564397978294022, 1.25718045712283
), degs = c(3, 12, 1, 1, 1, 15)), row.names = c(NA, 6L), class = "data.frame")
Мой код:
df_roles$role <- factor(df_roles$role, levels = c("Ultra peripheral",
"Peripheral",
"Connector",
"Kinless",
"Provincial",
"Connector Hub",
"Kinless Hub"))
g1 <- df_roles %>%
ggplot(aes(participation, connectivity, label = NA))
geom_point((aes(colour = factor(role))))
scale_color_manual(values = c("Ultra peripheral" = "#440154",
"Peripheral"="#3F4286",
"Connector"="#29778D",
"Kinless"="#1EA682",
"Provincial"="#1EA667",
"Connector Hub"="#7BD252",
"Kinless Hub"="#FDE721"),drop = FALSE)
]1
Комментарии:
1. Ваш код, кажется, работает, я получаю все уровни в легенде. ![]( i.imgur.com/F48xmmF.png )
2. @Claudio Это так странно, я получаю только три уровня, на которых выполняется точный код выше.