Я упростил пример переопределения в предыдущем своём сообщении.кстати, x -- вспомогательный массив, график-то мне нужен y[n],
Тогда мне совсем не видно смысла в пакете ggplot2
Пусть, для простоты, в цикле находятся значения синусоиды и выводятся на рисунок.
Код:
cc <- c('green', 'red', 'blue')
N=100
n = 1:100;
for (k in 1:3) {
Y <- 1/k*sin(n)
if (k == 1) plot(n, Y, type = 'l', col=cc[k]) else lines(n, Y, col=cc[k])
Получаем три графика на одном рисунке. Можно сделать и 10.
Вложение:
pic3A.png [ 11.22 Кб | Просмотров: 900 ]
Задача не сформулирована, поэтому гадать как-то не очень хочется.
Но вроде совершенно банальный способ приведен. Не указано, чем он не устраивает.
Upd (28.09.22) В моей версии R 3.6.3 при использовании ggplot2 в цикле происходит переопределение графиков и на рисунке виден только один. Например, так происходит в случае
Код:
cc <- c('green', 'red', 'blue')
N=100
gr <- ggplot()
Y <- matrix(nrow=3,ncol=N)
n = 1:N;
for (k in 1:3) {
Y[k, ] <- 1/k*sin(n)
gr <- gr + geom_line(aes(x=n, y=Y[k, ]), color=cc[k])
}
В следующей модификации переопределения не происходит и на рисунке видно три графика
Код:
cc <- c('green', 'red', 'blue')
N=100
gr <- ggplot()
Y <- matrix(nrow=3,ncol=N)
n = 1:N;
for (k in 1:3) {
Y[k, ] <- 1/k*sin(n)
gr <- gr + ( function(m, n, Y) geom_line(aes(x=n, y=Y[m, ]), color=cc[m]) )(k, n, Y)
}
В моей версии вместо анонимной функции можно и стандартную функцию использовать, но анонимная мне показалась немного более к месту.