График нескольких графиков для разных значений параметров в R - PullRequest
0 голосов
/ 10 сентября 2018

Я хочу графически изучить диапазон параметров для данного набора уравнений.

a = 1
b = 0.5
c = 0.8
d = 0.1
e = 0.6
f = 0.7
g = 0.2



y1 = function(x){c + b * x + d+ g+ f}
y2 = function(x){a + c + b^2 * x + e + g}

curve(y1, from = 0, to = 100, n = 100, xlim = c(-100, 100), ylim =c(-100,100), col = "grey")
    par(new = TRUE)
    curve(y2, from = 0, to = 100, n = 100, col = "orange")

Я хочу визуализировать, как изменяются графики для a = 0 до 100 (с шагом 2, поэтому 0, 2, 4, ... 100) для заданного значения других параметров. Я хочу построить 50 графиков, каждый с различным значением all на одной панели, или, скажем, 5 строк по 10 графиков в каждом. Как написать это без огромных блоков кода (т.е. без повторения кода заговора 50 раз)?

1 Ответ

0 голосов
/ 10 сентября 2018

Боюсь, у меня нет знаний, чтобы сделать это в базе R, но это можно сделать в ggplot (и, вероятно, тоже в базе R), предварительно рассчитав результаты в исходной таблице.

library(ggplot2); library(dplyr)

b = 0.5
c = 0.8
d = 0.1
e = 0.6
f = 0.7
g = 0.2

df <- tibble(
  x = rep(-100:100, 51),
  a = rep(seq(0, 100, by = 2), each = 201),
  y1 = c + b * x + d + g + f,
  y2 = if_else(x >= 0,
           a + c + b^2 * x + e + g,
           NA_real_)
)



ggplot(df, aes(x = x)) +
  geom_line(aes(y = y1), color = "grey") +
  geom_line(aes(y = y2), color = "orange") +
  facet_wrap(~a, labeller = label_both) +
  # To simulate "Base R" theme
  theme_bw() +
  theme(text = element_text(size=12),
             panel.grid.major = element_blank(),
             panel.grid.minor = element_blank(),
             strip.background = element_blank()
)

enter image description here

...