2016-04-09 12 views
-1

Ich weiß, dass es wirklich eine sehr einfache Frage ist und es tut mir leid, ich weiß mit ggplot2 für komplexe Matrix, aber wenn ich diese Art von Informationen habe, habe ich keine Möglichkeit, es anzuzeigen schön wie ich für die anderen gemacht habe.Schwierigkeiten, einfachen Wert anzuzeigen ggplot

Wie zu ggplot k?

Edit: Kein Fehler erhalten, aber nur ein leeres Grundstück

k=structure(list(`11` = 76.2025316455696, `16` = 0.907172995780591, 
     `17` = 84.3670886075949, `12` = 19.957805907173, `15` = 5.44303797468354, 
     `13` = 5.44303797468354, `14` = 19.0506329113924, `18` = 3.62869198312236), .Names = c("11", 
    "16", "17", "12", "15", "13", "14", "18"), row.names = c(NA, 
    -1L), class = "data.frame") 

EDIT:

Ineed ggplot zu verwenden, um Farbe für jede Kategorie zuweisen als

cat.colors <- brewer.pal(8, "Set1") # assign a color for each level of your factor variable Sous_Categorie 
names(cat.colors) <- c("11","12","13","14","15","16","17","18") 
label=c("cat1","cat2","cat3","cat4","cat5","cat6","cat7","cat8") 
mycolourscale <- scale_fill_manual(name = "Catégories",values = cat.colors, breaks=1:8, labels=as.character(label)) 
+0

Welcher Code diesen Fehler erzeugt? Sie haben uns gerade die Daten gegeben ... – Spacedman

+0

ggplot (k), muss ich das X und Y präzisieren? wie man es für ggplot umwandelt? Vielen Dank. – ranell

+0

Mit diesem 'k' erzeugt' ggplot (k) 'diese Fehlermeldung über" Klassenmatrix "nicht. Was haben Sie gemacht? – Spacedman

Antwort

1

Ich denke, folgt Sie müssen nur Ihre Daten ein wenig umformen, damit dies funktioniert (k ist von Ihrem dput):

library(ggplot2) 
library(RColorBrewer) 
k = data.frame(X = names(k), Y = t(k)) #reshape your data 
#then define the colour scale as you provided 
cat.colors <- brewer.pal(8, "Set1") # assign a color for each level of your factor variable 
names(cat.colors) <- c("11","12","13","14","15","16","17","18") 
label=c("cat1","cat2","cat3","cat4","cat5","cat6","cat7","cat8") 
mycolourscale <- scale_fill_manual(name = "Catégories", 
values = cat.colors, breaks=1:8, labels=as.character(label)) 
#make the plot 
ggplot(k, aes(X, Y))+geom_bar(stat = 'identity', aes(fill = X))+ 
    mycolourscale 

was zur Folge hat: enter image description here

Und wenn Sie eine Legende Label (aber gleiche Palette) wollen:

ggplot(k, aes(X, Y))+geom_bar(stat = 'identity', aes(fill = X))+ 
    scale_fill_brewer(palette = 'Set1')+theme_bw() 

enter image description here

+0

Vielen Dank! – ranell

Verwandte Themen