Loris Bennett <loris.benn...@fu-berlin.de> writes: > Hi Petr, > > See inline. > > PIKAL Petr <petr.pi...@precheza.cz> writes: > >> Hi >> >> see inline >> >>> -----Original Message----- >>> From: R-help [mailto:r-help-boun...@r-project.org] On Behalf Of Loris >>> Bennett >>> Sent: Monday, March 09, 2015 4:35 PM >>> To: r-h...@stat.math.ethz.ch >>> Subject: Re: [R] Add sum line to plot of multiple x values >>> >>> PIKAL Petr <petr.pi...@precheza.cz> writes: >>> >>> > Hi >>> > >>> > Not extremely clear what do you want to plot. Do you want to add a >>> > line which marks total number of files each day regardless of user? >>> Or >>> > a total number of files regardless of date coloured by user? >>> >>> Sorry, I was unclear. I meant that I would like to plot the following: >>> >>> 1. For each user: the number of files for each date (my code does this) >>> 2. The sum of files of all users for each date (this is what I still >>> need) >>> >>> > In each case you shall search functions geom_hline or geom_abline >>> > >>> > http://stackoverflow.com/questions/13254441/add-a-horizontal-line-to- >>> plot-and-legend-in-ggplot2 >>> >>> So I don't want a straight line >> >> but in your code is >> >>>> geom_line(data=d,aes(x=date,y=sum(files),group=date),colour='black') >> >> so you apparently want some sort of line. > > Yes, but see below. > >> anyway, if I do >> >> d.ag<-aggregate(d$files, list(d$date), sum) >> >> I can add >> >> p+geom_point(data=d.ag,aes(x=Group.1,y=x), size=5) >> >> and I get summary points. > > Thanks, this works. > >> If you want lines you can do >> >> p+geom_hline(data=d.ag,aes(yintercept=x, colour=Group.1)) >> >> or you can fiddle with geom_segment > > I don't want an hline, just a line joining the dots I get using > geom_point. I thought something like > > p + geom_line(data=d.ag,aes(x=as.character(Group.1),y=x) > > would work. However, while I get a plot with axes labelled in the > correct ranges, no line is plotted. Explicitly setting the colour with > > p + geom_line(data=d.ag,aes(x=as.character(Group.1),y=x),colour="red") > > doesn't help. What am I doing wrong?
I found the answer by googling "geom_line doesn’t draw lines". The following does what I want: ggplot(data=d.ag,aes(x=as.character(Group.1),y=x,group=1)) +_geom_line() My understanding is that, because 'Group.1' is a factor, the 'x' values are not considered as belonging to the same group and geom_line only connects points within a group. >>> > ggplot is rather complicated but very flexible >>> >>> I don't mind ggplot being complicated, but I find the documentation a >>> little impenetrable. >> >> You can find plenty of help when you just try to google on the item >> searching. Actually this is what I do when the solution is not obvious >> or requires some hidden instruction. > > This is what I normally resort to with varying degrees of success. It > just seems a bit of a shame the some of the documentation for such a > good piece of software does indeed appear to be rather "hidden". > >> Cheers >> Petr >> >>> >>> Cheers, >>> >>> Loris >>> >>> >>> >> -----Original Message----- >>> >> From: R-help [mailto:r-help-boun...@r-project.org] On Behalf Of >>> Loris >>> >> Bennett >>> >> Sent: Monday, March 09, 2015 2:56 PM >>> >> To: r-h...@stat.math.ethz.ch >>> >> Subject: [R] Add sum line to plot of multiple x values >>> >> >>> >> Hi, >>> >> >>> >> Here are my data: >>> >> >>> >> > d >>> >> user files date >>> >> 1 alice 18 2013-09-15 >>> >> 2 bob 5 2013-09-15 >>> >> 3 carol 21 2013-09-15 >>> >> 4 alice 22 2013-09-08 >>> >> 5 bob 9 2013-09-08 >>> >> 6 carol 14 2013-09-08 >>> >> 7 alice 26 2013-09-01 >>> >> 8 bob 3 2013-09-01 >>> >> 9 carol 22 2013-09-01 >>> >> >>> >> I would like to plot the number of files against date for all users, >>> so >>> >> I have: >>> >> >>> >> library(ggplot2) >>> >> >>> >> people <- c("alice","bob","carol") >>> >> user <- c(rep(people,3)) >>> >> files <- c(18,5,21,22,9,14,26,3,22) >>> >> date <- c(rep("2013-09-15",3),rep("2013-09-08",3),rep("2013-09- >>> >> 01",3)) >>> >> d <- data.frame(user=user,files=files,date=date) >>> >> >>> >> p <- ggplot() >>> >> p <- p + >>> geom_line(data=d,aes(x=date,y=files,group=user,colour=user)) >>> >> >>> >> I would now like to add a line to show the total number of files as >>> a >>> >> function of date. I tried >>> >> >>> >> p <- p + >>> >> geom_line(data=d,aes(x=date,y=sum(files),group=date),colour='black') >>> >> >>> >> I don't get a black line, but the plot is scaled such that I can see >>> >> that sum(file) for all values of 'file', rather than those for each >>> >> date, is being used. >>> >> >>> >> I would like to know how to do this correctly, but I would rather be >>> >> able to work it out for myself. However, if I decide, say, that I >>> >> don't >>> >> know exactly what the 'group' argument does, how do I find it out? >>> >> >>> >> ?geom_line doesn't have it, although the examples there use it. >>> ?ggplot >>> >> doesn't mention it. ?group gives me stuff about formatting text >>> >> arguments. ??group only leads me to ?ggplot2::add_group, which also >>> >> does >>> >> not seem to help. >>> >> >>> >> Am I at fault for trying to learn R in an ad hoc manner, to which >>> the >>> >> documentation of R does not lend itself, or am I missing something? >>> >> >>> >> Cheers, >>> >> >>> >> Loris >>> >> >>> >> -- >>> >> This signature is currently under construction. >>> >> -- Dr. Loris Bennett (Mr.) ZEDAT, Freie Universität Berlin Email loris.benn...@fu-berlin.de ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.