2016-04-19 1 views
0

Gibt es irgendwelche wissen, wie man die Farbe der Bars einstellen? Zum Beispiel würde ich SO2 in rot und NOx in blue.I unter dem Code verwendet setzen:Füllen Sie Balkendiagramm mit ausgewählten Farbe und Fehler: Ästhetik muss entweder Länge 1 oder das gleiche wie die Daten sein

Emission.l <- melt(Emission.Aerosol, id.vars = 'Year', 
        measure.vars = c('SO2.tons', 'NOx.tons')) 

gp <- ggplot(Emission.l, aes(x = Year, y = value, fill = variable)) 
gp <- gp + theme(axis.text.x = element_text(angle = 90, hjust = 1)) 
gp <- gp + geom_bar(stat = 'identity', position = 'dodge', fill=c("red","blue")) 
gp <- gp + ggtitle(Emission.Aerosol$Facility.Name) 
gp <- gp + ylab("Emission(Tons)") 
gp <- gp + scale_fill_discrete(name = '', 
           labels = c('SO2 (tons)', 'NOx (tons)')) 
gp <- gp + scale_x_continuous(breaks = 2003:2015) 


ggsave(filename= paste0(Emission.Aerosol$Facility.Name,".png"),device = "png", 
     width = 15, height = 10,units = "cm", dpi = 100) 

Aber die Fehlermeldung: Fehler: Ästhetik muss entweder Länge 1 oder die gleiche wie die Daten sein (26): füllen Vielen Dank für Ihre Hilfe!

+1

nehmen die Füllung von der 'geom_bar'. Wenn Sie Farben im 'scale_fill_discrete' angeben wollen, –

+0

Hi Richard, löschte ich', fill = c ("rot", "blau" 'aus der 'geom_bar' und füge zu 'scale_fill_discrete' als 'gp <- gp + hinzu scale_fill_discrete (fill = c ('rot', 'blau'), name = '', etiketten = c ('SO2 (tonnen)', 'NOx (tonnen)')) 'Aber es funktioniert nicht für mich –

+0

sorry - "scale_fill_discrete" in "scale_fill_manual" ändern (Etiketten = c ('SO2 (Tonnen)', 'NOx (Tonnen)'), Wert = c ("rot", "blau") ' –

Antwort

0

Lee Yee,

Können Sie geben einen Zeiger auf den Datensatz, den Sie verwenden? Was ist der Emissionsdatensatz, kann online abgerufen werden?

In Bezug das verknüpfte Buch Bezug auf ggplot, lesen und unter Siehe Abschnitt "Ändern Sie den Text der Legende Titel und Etiketten" in

http://www.cookbook-r.com/Graphs/Legends_(ggplot2)/

lesen:

require(ggplot2) 
    gp <- ggplot(Emission.l, aes(x = Year, y = value, fill = variable)) 
    gp <- gp + theme(axis.text.x = element_text(angle = 90, hjust = 1)) 
    gp <- gp + geom_bar(stat = 'identity', position = 'dodge') 
    gp <- gp + ggtitle(Emission.Aerosol$Facility.Name) 
    gp <- gp + ylab("Emission(Tons)") 
    gp <- gp + scale_fill_manual(labels = c('SO2 (tons)', 'NOx (tons)'), values = c("red", "blue")) 
    gp <- gp + scale_x_continuous(breaks = 2003:2015) 

    powerplant <- gp 
    print(powerplant) 
    dev.off() 
+0

Danke Pete, das funktioniert für mich. Ich habe immer das Kochbuch überprüft, bevor ich hier Fragen gestellt habe. Aber manchmal ist das Debuggen sehr schwierig für mich, der neu ist in R. –

+0

Kein Problem, glücklich zu helfen. Luis zu Richard Telford, er hat es geschafft. – Technophobe01

+0

Hallo @Pete Jarvis, ich habe einige andere verwandte Fragen würdest du einen Blick darauf werfen? Vielen Dank! Http: //stackoverflow.com/questions/36752276/add-legend-and-regression-line-equation-and-r2-on-graph –

Verwandte Themen