[R] ggplot2 stacked line plot

hadley wickham h.wickham at gmail.com
Wed Feb 10 00:12:42 CET 2010


Hi Liam,

Yes, that's what that code should do.  Could you please send a small
reproducible example?

Hadley

On Tue, Feb 9, 2010 at 4:21 PM, Liam Blanckenberg
<liam.blanckenberg at gmail.com> wrote:
> Hadley,
>
> Thanks for the pointing that error out to me. Unfortunately, revising
> my code to:
>
> p <- ggplot2(~, aes(x = ~, y = ~, colour = Type)) +
> geom_line(aes(colour = Type), position = 'stack')
>
> still does not generate what I'm after. I'm essentially after a line
> plot where each 'Type' ('series' in excel lingo) is stacked in an
> analogous fashion to a stacked area chart (i.e. geom_area(aes(Fill =
> Type), position = 'stack')) - again using lines rather than areas
> though.
>
> This chart should look just like a stacked area chart, however rather
> than each 'layer' (representing a given 'Type') being filled with a
> colour, each layer should have just a coloured line representing its
> values. Summing each line vertically for a given value on the x-axis
> across all the layers (i.e. 'Types') should then give the total y
> value for that x value (just like vertically summing an area chart).
> Really all I'm after is a stacked area chart where the fill for each
> 'Type' has been removed, leaving only a line for each (stacked) Type's
> value...
>
> I hope this is somewhat clear!
>
> Many thanks,
>
> Liam
>
>
>
>
>
> On Wed, Feb 10, 2010 at 1:53 AM, hadley wickham <h.wickham at gmail.com> wrote:
>> Hi Liam,
>>
>> Your syntax is a little off.  You want:
>>
>> p <- ggplot2(~, aes(x = ~, y = ~, colour = Type)) +
>>  geom_area(aes(fill = Type), position = 'stack')
>>
>> Position isn't an aesthetic.
>>
>> Hadley
>>
>> On Sun, Feb 7, 2010 at 10:40 PM, Liam Blanckenberg
>> <liam.blanckenberg at gmail.com> wrote:
>>> Hi all,
>>>
>>> I have been hunting around for hours trying to figure out how to
>>> generate a stacked line chart using ggplot2. This type of chart can be
>>> generated in excel 2007 by selecting: Chart type > Line > Stacked
>>> line. I can generate a stacked area chart using the following code:
>>>
>>>   p <- ggplot2(~, aes(x = ~, y = ~, colour = Type)) +
>>> geom_area(aes(position = 'stack', fill = Type))
>>>
>>> However, when I try and replicate this using the following code for geom_line:
>>>
>>>   p <- ggplot(~, aes(x = ~, y = ~, colour = Type)) +
>>> geom_line(aes(position = 'stack'))
>>>
>>> the resulting plot is not stacked - i.e. each 'Type' is plotted at its
>>> actual value rather than cumulatively to form a stacked chart... I
>>> have poured through Hadley's ggplot2 book (ggplot2: elegant graphics
>>> for data analysis), the R help list and also done general google
>>> searching but cannot find a way to generate this type of plot.
>>>
>>> R version: 2.9.2
>>> ggplot2 version: 0.8.5
>>> OS: windows 7 (64-bit).
>>>
>>> Any suggestions or assistance would be greatly appreciated.
>>>
>>> Regards,
>>>
>>> Liam
>>>
>>> ______________________________________________
>>> R-help at r-project.org mailing list
>>> 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.
>>>
>>
>>
>>
>> --
>> http://had.co.nz/
>>
>



-- 
http://had.co.nz/



More information about the R-help mailing list