r - ggplot のすべてのファセット内の x 軸の値によって箱ひげ図を並べるにはどうすればよいですか?

okwaves2024-01-25  7

すべてのファセット (クラスはここ) 内の x 軸の値 (ここでは hwy) によって箱ひげ図を並べ替えたいと考えています。 2 つの方法を試しましたが、失敗しました:

library(tidyverse); library(forcats)

mpg %>% 
  ggplot(aes(x = hwy, y = fct_reorder(trans, hwy, median))) + 
  geom_boxplot() +
  facet_wrap(~class, scales = "free_y")

mpg %>% 
  group_by(class) %>% 
  mutate(trans = fct_reorder(trans, hwy, median)) %>%
  ungroup() %>% 
  ggplot(aes(x = hwy, y = trans)) + 
  geom_boxplot() +
  facet_wrap(~class, scales = "free_y")

ここで何が足りないのでしょうか?

2

これは役に立つかもしれません stackoverflow.com/questions/52214071/…

– 桐

2020 年 9 月 4 日 21:49

トゥンさん、ありがとう!欲しいfct_reorder を使用できるようになります。使い方が間違っているのでしょうか?

– ゲット

2020 年 9 月 4 日 21:55



------------------------

ありがとう、Tung、そのリンクがヒントを与えてくれました。ここでは、tidytext の関数 reorder_within が役に立ちました。

mpg %>% 
  ggplot(aes(x = hwy, y = tidytext::reorder_within(trans, hwy, class, median))) + 
  geom_boxplot() +
  facet_wrap(~class, scales = "free_y")

...しかし、現時点での唯一の問題は、テキスト _class がチャート上のすべての y 値にアタッチされていることです。それを修正する方法はありますか?

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。