我在 R 中有如下資料集:
set.seed(123)
data <- as.data.frame(matrix(rnorm(20 * 5, mean = 0, sd = 1), 20, 5))
colnames(data) <- c("Y", paste0("X", 1:4))
我想在Y
and之間創建所有可能的圖X
。對于一個簡單的情節,我可以這樣做:
par(mfrow = c(2, 2))
for (i in seq(ncol(data))[-1]) {
plot(data[, 1], data[, i], xlab = colnames(data)[i], ylab = "Y")
}
如何根據ggplot
功能創建等效圖。我創建了以下內容,但無法使其正常作業。
par(mflow = c(2,2))
for (i in seq(ncol(data))[-1]){
ggplot(data, aes(x = data[,i], y = data[,1]))
labs(x = colnames(data)[i], y = "Y")
stat_smooth()
geom_point(color = "gray40", alpha = .5)
}
uj5u.com熱心網友回復:
使用ggplot2
時,大多數情況下通過使用例如將資料重新整形為長或整齊的格式會更好tidyr::pivot_longer
。這樣做之后,您可以使用例如facet_wrap
為每個 X 繪制圖:
library(tidyr)
library(ggplot2)
data_long <- pivot_longer(data, -Y, names_to = "name", values_to = "value")
ggplot(data_long, aes(x = value, y = Y))
stat_smooth()
geom_point(color = "gray40", alpha = .5)
facet_wrap(~name)
#> `geom_smooth()` using method = 'loess' and formula 'y ~ x'
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/505814.html
上一篇:在foreach回圈中更改的Flutter/Dart全域串列變數在回圈后未更改
下一篇:在分配給新列時對一級多索引求和