[R] Ordering of facet_wrap() panels

Stats Student @t@t@@@tudent4647 @end|ng |rom gm@||@com
Wed Aug 15 21:18:12 CEST 2018


Understood. Will review the docs again. 

My data is from an external source which, among other things, ensures that it's sorted correctly. I was asking for a way to have ggplot use the ordering in place, instead of re-ordering everything. Apologies if it wasn't clear from the original post. 

Anyway, if the data is correctly presorted, unique should work ok, I think. 




On Aug 15, 2018, 9:23 AM, at 9:23 AM, Bert Gunter <bgunter.4567 using gmail.com> wrote:
>1. Unless there is good reason to keep a reply private, always cc the
>list.
>This allows more brains, possible corrections, etc.
>
>2. Have you read ?factor and ?unique ? Always study the docs carefully.
>They are generally terse but complete, especially the base docs, and
>you
>can often find your answers there.
>
>3. Your "solution" may work in this case, but if I understand correctly
>what you're after,  won't in general. unique() gives the unique values
>in
>the order they appear, which may not be the order you want:
>
>## want ordering to be "a" < "b" < "c"
>
>> f <- rep(letters[3:1],2)
>
>> factor(f, levels = unique(f))
>[1] c b a c b a
>Levels: c b a  ## not your desired order
>
>Again, please consult the docs and perhaps a tutorial or two as
>necessary.
>
>-- Bert
>
>
>
>On Wed, Aug 15, 2018 at 8:22 AM, Stats Student
><stats.student4647 using gmail.com>
>wrote:
>
>> Many thanks, Bert.
>>
>> I did -
>>
>> facet_wrap(~factor(var, levels=unique (var))
>>
>> And it seems to be working fine.
>> Do you see any issues with this?
>>
>> I'm fairly new to R so want to make sure I'm not doing something
>stupid.
>>
>> Thanks again.
>>
>> On Wed, Aug 15, 2018, 7:50 AM Bert Gunter <bgunter.4567 using gmail.com>
>wrote:
>>
>>> See ?factor.
>>>
>>> You can either use ?ordered to create an ordered factor to sort the
>>> levels as you desire or sort them with factor(). e.g.
>>>
>>> > f <- factor(letters[3:1])
>>> > f
>>> [1] c b a
>>> Levels: a b c   ## default ordering
>>>
>>> > f <- factor(f, levels = letters[3:1])
>>> > f
>>> [1] c b a
>>> Levels: c b a  ## explicit ordering
>>>
>>> Cheers,
>>> Bert
>>>
>>>
>>>
>>> Bert Gunter
>>>
>>> "The trouble with having an open mind is that people keep coming
>along
>>> and sticking things into it."
>>> -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
>>>
>>> On Wed, Aug 15, 2018 at 7:21 AM, Stats Student <
>>> stats.student4647 using gmail.com> wrote:
>>>
>>>> Hi, I am generating multiple charts with facet_wrap() and what what
>I
>>>> see, R/ggplot sorts the panels by the facet variable. So adding an
>index to
>>>> the facet variable (1 - bucket, 2 - bucket, etc) does solve the
>sorting
>>>> issue but it's ugly.
>>>>
>>>> I also read this post which, if I understand correctly, claims that
>>>> ggplot should be using the initial ordering of the data for
>ordering the
>>>> charts (instead of ordering the data itself).
>>>>
>>>> https://mvuorre.github.io/post/2016/order-ggplot-panel-plots/
>>>>
>>>> Wondering if anyone knows how to direct ggplot use the initial
>sorting
>>>> of the data to order the panels.
>>>>
>>>> Thank you.
>>>>
>>>> ______________________________________________
>>>> R-help using 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.
>>>>
>>>
>>>




More information about the R-help mailing list