2017-05-08 3 views
0

Ich versuche, ein Diagramm von zwei Datensätzen zu machen, um ihre Werte zu vergleichen.Kombinieren Sie zwei Diagramme zu einem

ggplot() 
ggplot(pos_plot, aes(x=WORD, y=FREQ)) + 
    geom_bar(position="dodge", colour="blue", stat = "identity") + 
ggplot(neg_plot, aes(x=WORD, y=FREQ)) + 
    geom_bar(position="dodge", colour="red", stat = "identity") 

Aber wenn ich diesen Code ausführen bekomme ich den Fehler:

Error: Don't know how to add o to a plot 

Wer weiß, was mache ich falsch?

+1

Dies wird leichter sein, zu tun, wenn Sie die fusionieren zwei Datensätze zu einem zusammen und erstellen einen Faktor, der den Quelldatensatz identifiziert. Dann können Sie 'facet.grid' verwenden, um ein Diptychon zu erstellen, oder' fill = [factor id'ing source] ', um sie in einem einzigen Diagramm zu vergleichen. – ulfelder

+0

Wie möchten Sie die beiden Plots kombinieren? Zwei Parzellen nebeneinander oder eine Parzelle mit nebeneinander liegenden Balken? –

Antwort

0

Sie müssen unbedingt die Grammatik der Grafik ein wenig mehr studieren. Die + Anmeldung in ggplot kann nicht verwendet werden, um einfach einen weiteren ggplot zu Ihrem Plot hinzuzufügen. Sie könnten facet_grid verwenden, wie von @ulfelder in den Kommentaren erwähnt, oder grid.arrange aus dem gridExtra Paket:

require(ggplot2) 
library(gridExtra) 
library(grid) 

dfpos <- data.frame(x=1,y=1) 
dfneg <- data.frame(x=-1,y=-1) 

ppos <- ggplot(dfpos, aes(x,y)) + geom_point() 
pneg <- ggplot(dfneg, aes(x,y)) + geom_point() 

grid.arrange(ppos,pneg) 

Oder umschreiben Ihren eigenen Code:

ppos <- ggplot(pos_plot, aes(x=WORD, y=FREQ)) + 
     geom_bar(position="dodge", colour="blue", stat = "identity") 
pneg <- ggplot(neg_plot, aes(x=WORD, y=FREQ)) + 
     geom_bar(position="dodge", colour="red", stat = "identity") 
grid.arrange(ppos,pneg)