Построение гауссовской над гистограммой с помощью ggplot2 и получение «Длина ошибки (строки) == 1 не TRUE» - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь наложить гауссиан на гистограмму, используя R + ggplot2.Это заговор, который я делал много раз прежде, но теперь я получаю сообщение об ошибке: «Ошибка: длина (строки) == 1 не является ИСТИННЫМ».

Мой MWE:

library(ggplot2)
df <- data.frame("x" = rnorm(1000, 100,10)) # Sample data

p <- ggplot(df, aes(df$x, fill = ..density..))+
    geom_histogram(aes(y = ..density..), bins = 20)+
    stat_function(fun = dnorm, args = list(mean = mean(df$x), sd = sd(df$x)))+
    theme_bw()+
    theme(aspect.ratio = 1,
        panel.grid = element_blank(),
        legend.position = 'none')
p

Опять же, это то, что я делал много раз раньше.Возможно, это потому, что я перешел с моего рабочего компьютера на домашний компьютер?Я пытался обновить все свои пакеты, но это не помогло.Я использую RStudio версии 1.1.456, и вывод version:

platform       x86_64-pc-linux-gnu         
arch           x86_64                      
os             linux-gnu                   
system         x86_64, linux-gnu           
status                                     
major          3                           
minor          4.4                         
year           2018                        
month          03                          
day            15                          
svn rev        74408                       
language       R                           
version.string R version 3.4.4 (2018-03-15)
nickname       Someone to Lean On

Я пытался найти ответы из предыдущих сообщений Получение ошибки Ошибка: длина (строки) ==1 не является ИСТИННЫМ в R и dplyr Ошибка: длина (строки) == 1 не ИСТИНА в R , не повезло.Любая помощь очень ценится.Заранее спасибо.

1 Ответ

0 голосов
/ 13 ноября 2018

Проблема в том, что вы передаете fill перед тем, как присваиваете значение y в эстетике.Это работает следующим образом

p <- ggplot(df, aes(x = x))+
  geom_histogram(aes(y = ..density.., fill = ..density..), bins = 20)+
  stat_function(fun = dnorm, args = list(mean = mean(df$x), sd = sd(df$x)))+
  theme_bw()+
  theme(aspect.ratio = 1,
        panel.grid = element_blank(),
        legend.position = 'none')
p

enter image description here

...