Как построить график функции плотности вероятности в R?

#r #plot

#r #график

Вопрос:

Я пытаюсь построить функцию плотности вероятности с ограничением x от -1 до 0 и от 0 до 1, поэтому я делаю два графика:

 x1 = seq(-1, 0, 0.01)
x2 = seq(0, 1, 0.01)

eq1 = function(x) {(1 x)^2}
eq2 = function(x) {(1 x)^3}

plot(x1, eq1, col="red")
par(new = TRUE)
plot(x2, eq2, type = "l", col = "green")
  

Однако я получаю следующую ошибку:

Ошибка в xy.координаты (x, y, xlabel, ylabel, log): длины ‘x’ и ‘y’ отличаются.

Я не уверен, в чем дело.

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

1. Вы могли бы заменить eq1 = function(x){(1 x)^2} на eq1 <- (1 x1)^2 . Суть в том, чтобы построить векторы против векторов, а не векторы против функций. Вы также могли бы изучить curve() свои потребности в построении графика.

2. @JohnColeman да, кажется, что я должен, я просто использую = из-за опыта программирования

3. @compsciman = vs <- — это в основном просто вопрос вкуса. Проблема здесь не в этом. eq1 <- (1 x1)^2 вообще не определяет функцию. Он определяет вектор соответствующих y значений. Использование y1 <- (1 x1)^2 сделало бы это еще более понятным.

4. или plot(x1, eq1(x1))

Ответ №1:

Как было указано в комментариях, вторым аргументом для plot() (т. Е. y ) должен быть вектор:

 x1 = seq(-1, 0, 0.01)
x2 = seq(0, 1, 0.01)

eq1 = function(x) {(1 x)^2}
eq2 = function(x) {(1 x)^3}

plot(x1, eq1(x1), col="red")
par(new = TRUE)
plot(x2, eq2(x2), type = "l", col = "green")
  

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

1. Я получаю attempt to apply non-function за это