У меня есть простой набор точек для размещения в диаграмме рассеяния в R. Один набор точек - это данные тренировки, другой - одна точка тестовых данных. Я делаю диаграмму рассеянности данных обучения и добавляю тестовую точку данных к одному и тому же сюжету, используя ggplot2()
. Я хочу добавить тестовую точку данных к той же легенде, которая уже определена для данных обучения.Добавить легенду о масштабе в ggplot
Во-первых, некоторые данные для тех, кто хочет играть вместе.
A1 <- c(0,0)
A2 <- c(1,1)
A3 <- c(2,2)
B1 <- c(6,6)
B2 <- c(5.5,7)
B3 <- c(6.5,5)
train1 <- data.frame(rbind(A1,A2,A3, B1,B2,B3))
names(train1) <- c("X", "Y")
test_point <- data.frame("X" = 4.0, "Y" = 4.0) # make the test point a df to place nicely with ggplot.
cl <- factor(c(rep("A",3),rep("B",3))) # class labels
Теперь давайте создадим диаграмму рассеяния данных поезда и испытания:
ggplot(data = train1) +
aes(X, Y, colour = cl) +
geom_point(size = 3) +
geom_point(data = test_point, aes(X, Y), colour = "NavyBlue", size = 4) +
labs(size= "1", x = "X coords", y = "Y coords",
title = "Features for KNN", vjust=-10,
colour = "Class Labels") + # change the label for legend by variable name in aes()
theme(axis.text=element_text(size=16),
axis.text.x = element_text(angle=0, vjust=1),
axis.title=element_text(size=16),
legend.position="bottom", legend.direction = "vertical", #change location and direction of legend
legend.text = element_text(colour="blue", size = 16, face = "bold")) + #change style for legend text
theme(plot.title = element_text(size = 18))
, что делает достаточно приличный сюжет, но не имеет ничего в легенде для test_point NavyBlue.
Кто знает, как добавить test_point
к выходу легенды? Я получил его представлять, но не очень красиво, с помощью изменения первой geom_point
в
geom_point(data = test_point, aes(X, Y, colour = "Test Data"), size = 4) +
, который дает это без NavyBlue
уточняются. Итак, как сохранить окраску ВМФ Blue с этой формулировкой?
наивности, можно было бы попробовать
geom_point(data = test_point, aes(X, Y, colour = "Test Data"), colour = "NavyBlue", size = 4) +
но результаты в первом участке, то есть, дополнительный вход легенда уходит.
EDIT: Чтобы быть ясным, я пытаюсь сделать это с помощью отдельного geom_point()
. Я хочу иметь возможность добавить отдельное значение к легенде масштаба без слияния этих новых данных с другими данными.
Я ищу способ сделать это с добавлением еще 'geom_point()'. Я мог бы объединить data.frames уже, но я пытаюсь определить, как это сделать с помощью дополнительного элемента. Спасибо за эту мысль. –