[R] Add sum line to plot of multiple x values
Loris Bennett
loris.bennett at fu-berlin.de
Tue Mar 10 10:15:17 CET 2015
Hi Petr,
See inline.
PIKAL Petr <petr.pikal at precheza.cz> writes:
> Hi
>
> see inline
>
>> -----Original Message-----
>> From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Loris
>> Bennett
>> Sent: Monday, March 09, 2015 4:35 PM
>> To: r-help at stat.math.ethz.ch
>> Subject: Re: [R] Add sum line to plot of multiple x values
>>
>> PIKAL Petr <petr.pikal at 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?
>>
>> > 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-bounces at r-project.org] On Behalf Of
>> Loris
>> >> Bennett
>> >> Sent: Monday, March 09, 2015 2:56 PM
>> >> To: r-help at 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.
>> >>
--
This signature is currently under construction.
More information about the R-help
mailing list