我有一個矩陣,R我正在嘗試在第一列 (Y) 與所有其他列 ( Xj j=1,...,12) 之間創建圖。我正在使用以下代碼來做到這一點:
set.seed(123)
dat <- as.data.frame(matrix(rnorm(20 * 13, mean = 0, sd = 1), 20, 13))
colnames(dat) <- c("Y", paste0("X",1:12))
data_def <- pivot_longer(dat, -Y)
ggplot(data_def, aes(x = Y, y = value))
stat_smooth(se = FALSE, color = "red", size = 0.5, method = "loess")
facet_wrap( ~ name, scales = "free_y", strip.position = "bottom")
theme_classic()
labs(x = NULL, y = "Y")
這導致:

但是之后來X1了X10,X11而X12不是X2,X3等。我該如何重新安排訂單?
uj5u.com熱心網友回復:
我們可以使用fct_inorderfrom forcatspackage: 這將保持您的列中的順序!:
library(ggplot2)
library(forcats)
ggplot(data_def, aes(x = Y, y = value))
stat_smooth(se = FALSE, color = "red", size = 0.5, method = "loess")
facet_wrap( ~ fct_inorder(name), scales = "free_y", strip.position = "bottom")
theme_classic()
labs(x = NULL, y = "Y")

uj5u.com熱心網友回復:
嘗試這個:
data_def$name = factor(data_def$name,
levels = c("X1", "X2", "X3", "X4", "X5", "X6", "X7", "X8", "X9", "X10", "X11", "X12"))
ggplot(data_def, aes(x = Y, y = value))
stat_smooth(se = FALSE, color = "red", size = 0.5, method = "loess")
facet_wrap( ~ name, scales = "free_y", strip.position = "bottom")
theme_classic()
labs(x = NULL, y = "Y")

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/523676.html
