2012-04-02 14 views
8

Sto provando a creare un grafico a barre in pila molto semplice in ggplot2, ma per qualche motivo non funziona e viene visualizzato il messaggio di errore: "Errore in pmin (y, 0): oggetto 'y' non trovato ". Dov'è il problema?grafico a barre in pila ggplot2 - oggetto y non trovato

factorvar <- c(1,1,1,2,2,2,3,3,3) 
factorvar <- factor(factorvar, labels=c("Type", "Size", "Outcome")) 
freq <- c(3,1,4,1,2,2,4,1,1) 
fillvar <- c(1,1,1,2,2,2,3,3,3) 
fillvar <- factor(fillvar) 

df.harvest <- data.frame(fillvar,freq,factorvar) 

harvest <- ggplot(df.harvest, aes(x=factorvar, y=freq, fill=fillvar)) + geom_bar() 
harvest 
+2

Cosa succede se aggiungete 'stat =" identity "' alla vostra chiamata 'geom_bar' in questo modo:' geom_bar (stat = "identity") '? –

risposta

1

io non sono sicuro di cosa significa il messaggio di errore, ma se si utilizza fillvar = c(1,2,3,1,2,3,1,2,3), (al posto della variabile fillvar) si otterrà un grafico a barre in pila.

2

Io non sono davvero sicuro se ho capito ciò che si vuole contare e ciò che si desidera impilare, ma utilizzando alcuni dei vostri dati e il codice

qplot(factor(freq), data=df.harvest, geom="bar", fill=factorvar) 

ottengo questo,

qplot(factor(freq), data=df.harvest, geom="bar", fill=factor(factorvar))

È quello che stai cercando?

3

Questo è piuttosto vecchio, ma non ho visto alcuna buona risposta per esso:

Si deve sempre specificare gli argomenti in geom_bar se si sta fornendo l'asse y.

Stai già fornendo frequenza come asse y e non si desidera geom_bar di calcolare per voi, quindi è necessario specificare geom_bar(stat = "identity")

Inoltre, qui il tuo fillvar è essenzialmente lo stesso di factorvar e non v'è alcun punto in usando uno come asse e uno come colore di riempimento.

Tuttavia, se erano diversi, è necessario specificare anche geom_bar(stat = "identity", position="dodge") o (stat = "identity", position="stack").

Per impostazione predefinita, il stat passava a "bin" nel tuo caso e stava dando l'errore. Inoltre, per impostazione predefinita, la posizione utilizza stack.

Problemi correlati