Если данные изменяются, или если добавляется больше моделей или некоторые из них удаляются, вам не нужно менять команды для создания графика. Команды для построения графиков должны работать независимо от каких-либо изменений данных.
Предположим, что это данные.
df_cv
index allcv10 Model
1 1 0.3121693 1
2 2 0.3174603 1
3 3 0.3121693 1
4 4 0.3068783 1
5 5 0.2592593 1
6 6 0.3015873 1
7 7 0.3068783 1
8 8 0.3068783 1
9 9 0.3121693 2
10 10 0.3386243 2
11 11 0.3650794 2
12 12 0.3227513 2
13 13 0.3174603 2
14 14 0.3333333 2
15 15 0.3492063 2
16 16 0.3492063 2
17 17 0.3121693 3
18 18 0.3174603 3
19 19 0.3121693 3
20 20 0.3015873 3
21 21 0.2751323 3
22 22 0.3015873 3
23 23 0.3015873 3
24 24 0.3068783 3
Цвета для трех моделей должны быть указаны в виде вектора независимо от данных .
cols <- c("red","green","blue")
Это также облегчит создание легенды.
plot(allcv10~index, data=df_cv, xlab="Model Number", ylab="CV Error Rate",
main="Comparison of Error Rates", pch=20,
col = cols[Model]) # use Model to index the color vector
legend("topright", legend=c("LDA", "QDA", "Logistic Regression"),
col = cols, pch=20, cex=0.8)
Если вы хотите изменить цвета, вам нужно только изменить cols
вектор, а не данные. И если четвертый тип моделирования (Model=4
) входит в драку, то вектор cols
можно просто изменить, добавив другой цвет. Команды прорисовки, включая легенду, менять не нужно.
Так работает ggplot. Цвет задается с использованием переменной данных и вектора цвета той же длины, что и число уровней переменной, а не путем указания независимого вектора цвета той же длины, что и переменная.