2017-09-13 1 views
0

Ich bin neu in ggplot, also hoffentlich ist dies eine einfache Frage.wie man Legende zu ggplot barplot mit individuellen Farben für jeden Balken hinzufügen

a <- data.frame(var = rep(seq(1:2),2), val = seq(1:4)) 
col <- c('red', 'blue', 'green', 'red') 

ggplot(a, aes(x = var, y = val)) + 
    geom_bar(stat = 'identity', fill = col) 

die wie folgt aussieht:

enter image description here

wie füge ich eine Legende zum Grundstück Ich habe eine gestapelte BarPlot mit Farben für jedes Segment in Spalte gegeben gemacht? Ich versuchte

+ scale_fill_manual(name = 'legend', breaks = seq(1:4), values = col) 
+0

Beachten Sie auch, dass Sie 'geom_col' stattdessen verwenden können. – Axeman

Antwort

1

Sie waren nah!

Verschieben fill = col zu aes:

library(ggplot2) 
a <- data.frame(var = rep(seq(1:2),2), val = seq(1:4)) 
col <- rainbow(n = 4) 
ggplot(a, aes(x = var, y = val, fill = col)) + 
    geom_bar(stat = 'identity') + 
    scale_fill_manual(values = col) 

Sie haben es innerhalb aes als col zu setzen ist Variable, die Sie (in diesem Fall fill) auf bestimmte ästhetische zuordnen möchten.

+0

Vielen Dank @PoGibas. Sorry, vielleicht war die Frage nicht klar genug. Ich habe es bearbeitet. Hoffentlich ist es jetzt klarer – Lukas

Verwandte Themen