2017-02-01 8 views
0

Ich habe ein Diagramm mit 16 Beobachtungen in 5 Spalten. Eine der Spalten heißt "Name". Innerhalb des Spaltennamens habe ich car1-6, truck1-5 und train 1-5, die meine 16 Beobachtungen ausmachen. Ich habe:Gruppe GGPlot Farbe basierend auf Zeilennummer

ggplot(dftest, aes(x = Names, y= AVGMostLikely, ymin= BestCaseHi, ymax=WorstCaseLow)) + 
    geom_bar(stat = "identity") + 
    geom_errorbar() + 
    ggtitle("Bar chart with Error Bars") 

ich die Füllung/Farbe der Balken haben wollen auf den Namen zu basieren, wo car1-6 eine Farbe sein, truck1-5 anderen, und train1-5 sind eine dritte Farbe. Ist das in ggplot möglich?

Vielen Dank für jede Hilfe

+1

Haben Sie in Ihrer 'aes' Funktion' fill = Names' versucht? – DataJack

+0

@DataJack Das erzeugt eine neue Farbe für immer Namen (also 16 Farben). Ich hätte gerne nur eine Farbe für: Auto, LKW, Zug (also insgesamt 3 Farben). –

+0

Sie können dies tun, aber Sie müssen wahrscheinlich zuerst Ihre Daten neu gestalten. –

Antwort

1

Hier ist der Code das letzte Zeichen in Ihre Spalte Names zu entfernen (was die Zahl ist):

char_array = c("car1","car2","truck1","truck5") 
data = data.frame("names"=char_array) 
data$names = as.character(data$names) 
data$groups = substr(data$names,1,nchar(data$names)-1) 

als Sie eine neue Spalte groups genannt haben, wo Du Verwenden Sie als fill Argument in ggplot.

Verwandte Themen