

ggplot2を用いて、経時的なサンプルの変化を箱ひげ図で示したいと思っています。

以下のような手順で進めると、添付画像のように横軸のDayが反映されない箱ひげ図が出力されてしまいます。  
Dayごとに箱ひげ図をまとめるには、どのようにすれば良いでしょうか？

Boxplotに詳しい方、コメントを頂けないでしょうか？

[code]

    library(tidyverse) 
    library(easystats)
    
    #サンプルデータの作成
    A_X_value = as.numeric(rpois(30, lambda = 10))
    A_Y_value = as.numeric(rpois(30, lambda = 30))
    B_X_value = as.numeric(rpois(30, lambda = 15))
    B_Y_value = as.numeric(rpois(30, lambda = 20))
    
    Sample = c(rep("A", 60), rep("B", 60))
    Feature = c(rep("X", 30), rep("Y", 30), rep("X", 30), rep("Y", 30))
    Day = c(rep(1, 20), rep(2, 20), rep(3, 20), rep(1, 20), rep(2, 20), rep(3, 20))
    Value = c(A_X_value, A_Y_value, B_X_value, B_Y_value)
    
    test_box_DF = data.frame(Sample, Feature, Day, Value)
    
    #boxplotの作成
    
    gp_boxtest = ggplot(data = test_box_DF, aes(x = Day, y = Value, color = Feature)) + 
      geom_boxplot() +
      facet_wrap(~ Sample) +
      theme_classic() +
      theme(panel.spacing = grid::unit(1, "lines"), axis.text = element_text(colour = "black")) +
      labs(x="Day", y="Value") 
    
    gp_boxtest
    
[/code]

[![出力結果](https://i.stack.imgur.com/pkPHc.png)](https://i.stack.imgur.com/pkPHc.png)


CC BY-SA 4.0
2023-02-05T13:20:30.187
93716
2023-03-11T15:06:18.847
2023-02-05T23:05:20.827
56816
56816
question
r
Boxplotを条件ごとに作成する。


「Dayごとに箱ひげ図にする」ためには `~ Day` を facet_wrap() に渡します

[code]

    pacman::p_load(tidyverse) 
    pacman::p_load(easystats)
    #サンプルデータの作成
    A_X_value <- as.numeric(rpois(30, lambda = 10))
    A_Y_value <- as.numeric(rpois(30, lambda = 30))
    B_X_value <- as.numeric(rpois(30, lambda = 15))
    B_Y_value <- as.numeric(rpois(30, lambda = 20))
    Sample <- c(rep("A", 60), rep("B", 60))
    Feature <- c(rep("X", 30), rep("Y", 30), rep("X", 30), rep("Y", 30))
    Day <- c(rep(1, 20), rep(2, 20), rep(3, 20), rep(1, 20), rep(2, 20), rep(3, 20))
    Value <- c(A_X_value, A_Y_value, B_X_value, B_Y_value)
    # facet時のラベルに使うカラムを追加
    test_box_DF <- tibble(Sample, Feature, Day, Value) %>% 
      mutate(day_label = paste("Day:", Day))
    
    #boxplotの作成
    gp_boxtest <- ggplot(test_box_DF, aes(x = Feature, y = Value, color = Sample)) + 
      geom_boxplot() +
      facet_wrap(~day_label)
    
    gp_boxtest
    
[/code]

[![画像の説明をここに入力](https://i.stack.imgur.com/9iFej.png)](https://i.stack.imgur.com/9iFej.png)


CC BY-SA 4.0
2023-02-07T10:36:12.950
93748
2023-02-15T03:29:53.560
2023-02-15T03:29:53.560
32676
32676
93716
answer


既に解決済みかもしれませんが，`Day` についても文字列で指定することで御希望の描画ができそうです。

[code]

    ## Day = c(rep(1, 20), rep(2, 20), rep(3, 20), rep(1, 20), rep(2, 20), rep(3, 20))
    Day = c(rep('1', 20), rep('2', 20), rep('3', 20),
            rep('1', 20), rep('2', 20), rep('3', 20))
    
[/code]

なお，作成したデータフレームを出力するとわかりますが，組み合せ可能な12（= 2 x 2 x 3）種類の行のうち (A, X, 3)， (A, Y,
1)，(B, X, 3)，(B, Y, 1) の4種類の行はないので箱ひげ図は8個になります。  
[![描画出力](https://i.stack.imgur.com/jI00c.png)](https://i.stack.imgur.com/jI00c.png)


CC BY-SA 4.0
2023-03-11T15:06:18.847
94134
2023-03-11T15:06:18.847
54588
93716
answer