2016-03-14 26 views
5

Chcę zrobić bardzo prosty histogram z ggplot2. Mam następujące MWE:R: ggplot: Błąd: Nieznane parametry: binwidth, bin, pad

library(ggplot2) 
mydf <- data.frame(
        Gene=c("APC","FAT4","XIRP2","TP53","CSMD3","BAI3","LRRK2","MACF1", 
        "TRIO","SETD2","AKAP9","CENPF","ERBB4","FBXW7","NF1","PDE4DIP", 
        "PTPRT","SPEN","ATM","FAT1","SDK1","SMG1","GLI3","HIF1A","ROS1", 
        "BRDT","CDH11","CNTRL","EP400","FN1","GNAS","LAMA1","PIK3CA", 
        "POLE","PRDM16","ROCK2","TRRAP","BRCA2","DCLK1","EVC2","LIFR", 
        "MAST4","NAV3"), 
        Freq=c(48,39,35,28,26,17,17,17,16,15,14,14,14,14,14,14,14,14,13, 
        13,13,13,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10, 
        10,10,10)) 
mydf 
ggplot(mydf, aes(x=Gene)) + 
     geom_histogram(aes(y=Freq), 
     stat="identity", 
     binwidth=.5, alpha=.5, 
     position="identity") 

Zawsze używam tego prostego kodu do tworzenia tego rodzaju histogramów.

W rzeczywistości, mam działkę na tym konkretnym przykładzie, że zrobiłem jakiś czas temu ...

enter image description here

Jednak teraz biegnę dokładnie ten sam kod, i pojawia się następujący błąd:

Error: Unknown parameters: binwidth, bins, pad

Dlaczego ten błąd występuje teraz, a nie wcześniej i co to oznacza?

Wielkie dzięki!

+0

Czy dane wejściowe uległy zmianie od czasu pierwotnego wydruku? –

+0

Bez zmian, faktycznie skopiowałem go z mojego starego kodu dla tego MWE – DaniCee

+0

Czy oni wprowadzili zmiany do ggplot2_ Jaki byłby właściwy sposób odtworzenia tej fabuły z tymi danymi teraz? – DaniCee

Odpowiedz

-4

raczej użyłby dplyr (operator rury) dla zrozumienia kodu:

mydf %>% #my data frame 
    as.data.frame %>% #if mydf is not a dataframe 
    ggplot(aes(x = Var, y = n)) 
     + geom_bar(aes(y = n), stat = "identity", position = "identity") 
+2

Jestem także wielkim fanem operatorów rur. –

+2

To nie odpowiada na pytanie – DataTx

-1

geom_histogram() nie jest najbardziej odpowiedni sposób wykreślić zliczenia wartości dyskretnych.

Po wstępnym obliczeniu wartości częstotliwości należy użyć funkcji geom_col(), a następnie wszystkie błędy znikną.

library(ggplot2) 
mydf <- data.frame(
       Gene=c("APC","FAT4","XIRP2","TP53","CSMD3","BAI3","LRRK2","MACF1", 
       "TRIO","SETD2","AKAP9","CENPF","ERBB4","FBXW7","NF1","PDE4DIP", 
       "PTPRT","SPEN","ATM","FAT1","SDK1","SMG1","GLI3","HIF1A","ROS1", 
       "BRDT","CDH11","CNTRL","EP400","FN1","GNAS","LAMA1","PIK3CA", 
       "POLE","PRDM16","ROCK2","TRRAP","BRCA2","DCLK1","EVC2","LIFR", 
       "MAST4","NAV3"), 
       Freq=c(48,39,35,28,26,17,17,17,16,15,14,14,14,14,14,14,14,14,13, 
       13,13,13,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10, 
       10,10,10), stringsAsFactors = FALSE) 
mydf 
ggplot(mydf, aes(x=Gene, y=Freq)) + 
    geom_col() + 
    scale_x_discrete(limits = mydf$Gene) 

Uwaga: należy również zdefiniować kolumnę Gene jak nie jest czynnikiem i scale_x_discrete(), aby uniknąć kolejność alfabetyczną osi x.