Ошибка: эстетика должна быть либо длиной 1, либо такой же, как data (1): x и y - PullRequest
1 голос
/ 04 августа 2020

Я не понимаю, почему это не работает:

library(ggplot2)
x <- seq(-4,4,0.01)
g <- qplot(x, dnorm(x), geom = 'line')
g <- g + labs(x = 'x', y = 'f(x)', title = 'Distribución normal estándar')
g
title <- expression(paste('N(0,1) ', italic(versus), ' N(1,1)'))
g <- g + stat_function(fun = dnorm(x), args = list(mean = 1), color = 'red')
g <- g + labs(title = title)
g

Я получаю

Ошибка: эстетика должна быть либо длиной 1, либо такой же, как data (1 ): x and y

Но раньше работало! Большое спасибо!

1 Ответ

0 голосов
/ 04 августа 2020

Работает, когда вы добавляете (любой!) Фрейм данных в качестве аргумента data. Возможно, вы использовали фрейм данных в своем предыдущем коде. Обычно я не работаю с qplot, но если это похоже на ggplot, обычно требуются некоторые спецификации, на которые вы ссылаетесь. В этом случае вы можете просто создать «фиктивный» аргумент.

Примечание. Я также изменил аргумент fun на просто dnorm. Никаких скобок или аргументов не требуется.

library(ggplot2)
x <- seq(-4,4,0.01)
qplot(x, dnorm(x), geom = 'line') + 
  stat_function(data = data.frame(), fun = dnorm, args = list(mean = 1), color = 'red')

Created on 2020-08-03 by the пакет REPEX (v0.3.0)

...