r - Generating a legend in ggplot2 -


i tried generate legend ggplot, want illustrate 5 different lines on time horizon of 2,5 months 11 datapoints. can generate graph, doesn't work legend comparing colors , names of lines. tried different commands, i.e. scale_colour_manual, scale_fill_discrete, opts, guides,... nothing works. don't know what's wrong.. can please me?

here commands define data frame.

spaß <- read.csv(file="spaßfaktor.csv", header = true, sep = ";", dec=",")  svs <- ts(spaß$sehr.viel.spaß, deltat=1/52) vs <- ts(viel.spaß, deltat=1/52) n <- ts(normal, deltat=1/52) ws <- ts(wenig.spaß, deltat=1/52) sws <- ts(sehr.wenig.spaß, deltat=1/52)  zp <- strptime(spaß$zeitpunkt, format="%d.%m.%y") zp  df<-data.frame(zp, svs, vs, n, ws, sws) 

to generate graph, used example following command (which includes comman scale_colour_manual). including command, r doesn't create graph. if delete out of ggplot command, graph shwos up:

       sp<-ggplot(df, aes(zeit) ) +       geom_line(aes(y=svs), colour="green", lwd=1.3) +  # first layer       geom_line(aes(y=vs), colour="blue", lwd=1.3) +       geom_line(aes(y=n), colour="black", lwd=1.3) +         geom_line(aes(y=ws), colour="orange", lwd=1.3) +       geom_line(aes(y=sws), colour="red", lwd=1.3) +        scale_colour_manual("",                  breaks = c("sehr viel spaß", "viel spaß", "normal", "wenig spaß", "sehr wenig spaß"),                           values = c("green", "blue", "black", "orange", "red"))+       xlab("zeit") +       scale_y_continuous("anzahl in prozent", limits = c(0,65)) +        labs(title="häufigkeit der auspräungen des faktors spaß")  sp 

i tried command scale_fill_discrete or guide @ end adding sp. means i.e.: sp + guides(fill = guide_legend(reverse=true)) or sp + scale_fill_discrete(name="legende", labels=c("sehr viel spaß", "viel spaß", "normal", "wenig spaß", "sehr wenig spaß"))

can please me??

the datas generated on own survey. shown underneath:

varaible       spaß    beurteilung sehr viel spaß/sehr gut 4   5 viel spaß/gut     8     6 normal/neutral    10    9 wenig spaß/schlecht    3    4 sehr wenig spaß/sehr schlecht      3    4 

to expand on heroka's comment you'll want use tidyr or reshape2 convert data wide format long format. vignettes each package cover in-depth. you'd set color in aes call in geom_line , use scale_color_manual set breaks, colors , labels appropriately.

library(tidyr) library(ggplot2)  # using input dataset provided in separate answer df <- gather(df, variable, value, -zeitpunkt)  ggplot(df, aes(x = zp) ) +   geom_line(aes(y = value, colour = variable, group = variable), lwd = 1.3) +    scale_colour_manual(labels = c("sehr viel spaß", "viel spaß", "normal", "wenig spaß", "sehr wenig spaß"),                       breaks = c("svs","vs","n","ws","w"),                       values = c("green", "blue", "black", "orange", "red")) +   xlab("zeit") +   scale_y_continuous("anzahl in prozent", limits = c(0,65)) +    labs(title="häufigkeit der auspräungen des faktors spaß") 

enter image description here


Comments

Popular posts from this blog

php - How to display all orders for a single product showing the most recent first? Woocommerce -

asp.net - How to correctly use QUERY_STRING in ISAPI rewrite? -

angularjs - How restrict admin panel using in backend laravel and admin panel on angular? -