Моя легенда в r не отображается. В чем может быть проблема?

#r #plot

#r #сюжет

Вопрос:

Это мой код, он работает до сих пор, за исключением того, что легенда не отображается в сюжете:

 plot(norm_prices_daily[,1], col = "blue",lwd=3,grid.col = NA, ylim = c(0,3))
lines(norm_prices_daily[,2],lwd=3, col = "dark green")
legend("bottomright",legend=c("Stock 1","Stock 2"),col = c("blue","dark green"))
  

norm_prices_daily — это объект зоопарка с двумя столбцами и 182 строками.
Вот часть данных. Вывод из dput(head(norm_prices_daily[,1],20)):

 structure(c(1, 0.9929401294387, 0.99644855697716, 0.9936552740678, 
0.998526620668352, 1.00517207744161, 1.00230213170477, 1.00929440707496, 
1.00776579745506, 1.0096505179963, 1.01809781273736, 1.02202987149226, 
1.01931947115634, 1.01961413204347, 1.0207774879027, 1.01154745364837, 
0.99563509229331, 1.0056447937894, 1.00477302623885, 1.00792234548049
), class = c("xts", "zoo"), .indexCLASS = "Date", .indexTZ = "UTC", tclass = "Date", tzone = "UTC", src = "yahoo", updated = structure(1600533381.35332, class = c("POSIXct", 
"POSIXt")), index = structure(c(1577923200, 1578009600, 1578268800, 
1578355200, 1578441600, 1578528000, 1578614400, 1578873600, 1578960000, 
1579046400, 1579132800, 1579219200, 1579564800, 1579651200, 1579737600, 
1579824000, 1580083200, 1580169600, 1580256000, 1580342400), tzone = "UTC", tclass = "Date"), .Dim = c(20L, 
1L), .Dimnames = list(NULL, "^GSPC"))
  

Я пробовал разные варианты положения легенды, такие как конкретные координаты x и y, потому что я подозревал, что легенда есть, но слишком низкая или что-то в этом роде. Но это, похоже, не проблема.

Комментарии:

1. Было бы полезно иметь воспроизводимый вопрос с репрезентативными выборочными данными. Рассмотрите возможность либо репликации вашего процесса с использованием общего набора данных, такого как iris или mtcars , либо включения выходных данных из dput(head(x,n)) where x — это ваш набор данных (только с необходимыми столбцами), и n это число достаточно большое, чтобы иметь возможность воспроизвести вашу проблему, но не «большое»; в зависимости от многих факторов, n=10 или n=20 часто достаточно большое.

2. Когда я пытаюсь воспроизвести ошибку с набором данных iris, ошибка не возникает (легенда отображается так, как должна). Я отредактировал свой вопрос с помощью своих данных.

3. Ваш код выдает ошибки в первой строке, поскольку grid.col = NA это недопустимый графический параметр, и во второй строке, потому что в ваших данных нет столбца 2.

Ответ №1:

Вы не указали тип строки, которую хотите использовать в легенде, но она все равно должна печатать метки. Вот небольшая модификация первого примера на странице руководства print.zoo , чтобы сделать его более сопоставимым с вашим:

 x.Date <- as.Date(paste(2003, 02, c(1, 3, 7, 9, 14), sep = "-"))
set.seed(42)
x <- zoo(cbind(rnorm(5), rnorm(5, sd= 0.2)), x.Date)
plot(x[, 1], col = "blue")
lines(x[, 2], col = "dark green")
legend("bottomright", legend=c("Stock 1","Stock 2"), lty=1, col = c("blue","dark green"))
  

Сюжет