带有小平面网格的哑铃图错误,无法创建并排图
Error in dumbbell plot with facet grid, unable to create a side by side plot
我尝试用多面网格并排绘制哑铃图,但出现了一些有趣的错误。
错误:至少一层必须包含所有分面变量:Trial_type
、Session.
。
- 地块缺失
Trial_type
、Session.
- 缺少第 1 层
Session.
- 第 2 层缺失
Session.
- 缺少第 3 层
Session.
- 第 4 层缺失
Session.
- 缺少第 5 层
Trial_type
、Session.
- 缺少第 6 层
Session.
运行 rlang::last_error()
看看哪里出错了。
此外: 警告信息:
1:在 min(x) 中:min 没有非缺失参数;返回信息
2:在 max(x) 中:max 没有非缺失参数;返回-Inf
3:在 min(x) 中:min 没有非缺失参数;返回信息
4:在 max(x) 中:max 没有非缺失参数;返回 -Inf
data10A <- structure(list(Session = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2), conditon2 = structure(c(10L,
4L, 12L, 6L, 11L, 5L, 1L, 7L, 3L, 9L, 2L, 8L, 10L, 4L, 12L, 6L,
11L, 5L, 1L, 7L, 3L, 9L, 2L, 8L), .Label = c("CEN_LLL", "CTL_LLL",
"IPS_LLL", "CEN_RRR", "CTL_RRR", "IPS_RRR", "CEN_RLR", "CTL_RLR",
"IPS_RLR", "CEN_LRL", "CTL_LRL", "IPS_LRL"), class = "factor"),
Trial_type = structure(c(2L, 1L, 2L, 1L, 2L, 1L, 1L, 2L,
1L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 1L,
2L), .Label = c("Retention", "Transfer"), class = "factor"),
NormalizedJerk_102 = c(1270.168699, 2099.703957, 3259.268053,
1152.257445, 3810.890123, 4601.918336, 1792.371775, 1288.768888,
2699.08162, 1650.968794, 2018.457394, 6159.567785, 931.350429,
1053.84252, 1611.673955, 1034.363607, 5352.195367, 2499.83996,
1560.678962, 915.3845866, 1948.757464, 1341.815274, 2113.732859,
2051.140838), NormalizedJerk_104 = c(853.7034116, 924.8554548,
2268.966702, 675.7160839, 2442.874632, 1603.954653, 1010.111276,
794.1752256, 1313.813984, 1197.638788, 1039.577947, 3125.131019,
561.2311988, 767.7541159, 1019.744071, 769.6067294, 2232.404471,
1292.509181, 884.8343164, 663.0273865, 1230.369444, 717.8466364,
1536.027898, 1027.358586), key = c("Change in normalized jerk",
"Change in normalized jerk", "Change in normalized jerk",
"Change in normalized jerk", "Change in normalized jerk",
"Change in normalized jerk", "Change in normalized jerk",
"Change in normalized jerk", "Change in normalized jerk",
"Change in normalized jerk", "Change in normalized jerk",
"Change in normalized jerk", "Change in normalized jerk",
"Change in normalized jerk", "Change in normalized jerk",
"Change in normalized jerk", "Change in normalized jerk",
"Change in normalized jerk", "Change in normalized jerk",
"Change in normalized jerk", "Change in normalized jerk",
"Change in normalized jerk", "Change in normalized jerk",
"Change in normalized jerk")), row.names = c(NA, -24L), class = c("tbl_df",
"tbl", "data.frame"))
library(tidyverse)
library(dumbbell)
dumbbell::dumbbell(data10A, id = "conditon2", key = "Trial_type",
leg = "Test",
column1 = "NormalizedJerk_102",
column2 = "NormalizedJerk_104",
delt = 1, lab1 = "Pre-test", lab2 = "Post-test",
p_col1 = "black", p_col2 = "grey40",
textsize = 4, segsize = 1.5,
pointsize = 2.5,
title = "Change in Normalized jerk from Pre- to Post-test") +
facet_wrap( Trial_type ~ Session., scales="free", ncol=2) +
theme(axis.text.x = element_text(size = 12, face = "bold"),
axis.text.y = element_text(size = 11, face = "bold"),
legend.position = "right",
legend.text = element_text(size = 12),
legend.title = element_text(size = 14),
strip.text = element_text(face = "bold", size = 14, color = "black"))
问题是 dumbbell::dumbbell
在通过 ggplot2
构建哑铃图之前做了一些数据预处理。除其他事项外,在此步骤中会删除不必要的列,即仅保留 dumbbell
参数中指定的列,而在您的情况下包括 Session
列的所有其他列都会被删除。因此,您无法按 Session
.
进行分面
一种解决方法是向您的数据添加一个新的键列,这只是 Trial_type
和 Session
的交互。然后,您可以将此键列传递给关闭 dumbbell
的 key
参数,并可用作构面变量:
library(ggplot2)
library(dumbbell)
data10A$key <- paste(data10A$Trial_type, data10A$Session, sep = "\n")
dumbbell::dumbbell(data10A, id = "conditon2", key = "key",
leg = "Test",
column1 = "NormalizedJerk_102",
column2 = "NormalizedJerk_104",
delt = 1, lab1 = "Pre-test", lab2 = "Post-test",
p_col1 = "black", p_col2 = "grey40",
textsize = 4, segsize = 1.5,
pointsize = 2.5,
title = "Change in Normalized jerk from Pre- to Post-test") +
facet_wrap( ~ key, scales="free", ncol=2) +
theme(axis.text.x = element_text(size = 12, face = "bold"),
axis.text.y = element_text(size = 11, face = "bold"),
legend.position = "right",
legend.text = element_text(size = 12),
legend.title = element_text(size = 14),
strip.text = element_text(face = "bold", size = 14, color = "black"))
由 reprex package (v2.0.1)
于 2021-11-14 创建
我尝试用多面网格并排绘制哑铃图,但出现了一些有趣的错误。
错误:至少一层必须包含所有分面变量:Trial_type
、Session.
。
- 地块缺失
Trial_type
、Session.
- 缺少第 1 层
Session.
- 第 2 层缺失
Session.
- 缺少第 3 层
Session.
- 第 4 层缺失
Session.
- 缺少第 5 层
Trial_type
、Session.
- 缺少第 6 层
Session.
运行rlang::last_error()
看看哪里出错了。 此外: 警告信息: 1:在 min(x) 中:min 没有非缺失参数;返回信息 2:在 max(x) 中:max 没有非缺失参数;返回-Inf 3:在 min(x) 中:min 没有非缺失参数;返回信息 4:在 max(x) 中:max 没有非缺失参数;返回 -Inf
data10A <- structure(list(Session = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2), conditon2 = structure(c(10L,
4L, 12L, 6L, 11L, 5L, 1L, 7L, 3L, 9L, 2L, 8L, 10L, 4L, 12L, 6L,
11L, 5L, 1L, 7L, 3L, 9L, 2L, 8L), .Label = c("CEN_LLL", "CTL_LLL",
"IPS_LLL", "CEN_RRR", "CTL_RRR", "IPS_RRR", "CEN_RLR", "CTL_RLR",
"IPS_RLR", "CEN_LRL", "CTL_LRL", "IPS_LRL"), class = "factor"),
Trial_type = structure(c(2L, 1L, 2L, 1L, 2L, 1L, 1L, 2L,
1L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 1L,
2L), .Label = c("Retention", "Transfer"), class = "factor"),
NormalizedJerk_102 = c(1270.168699, 2099.703957, 3259.268053,
1152.257445, 3810.890123, 4601.918336, 1792.371775, 1288.768888,
2699.08162, 1650.968794, 2018.457394, 6159.567785, 931.350429,
1053.84252, 1611.673955, 1034.363607, 5352.195367, 2499.83996,
1560.678962, 915.3845866, 1948.757464, 1341.815274, 2113.732859,
2051.140838), NormalizedJerk_104 = c(853.7034116, 924.8554548,
2268.966702, 675.7160839, 2442.874632, 1603.954653, 1010.111276,
794.1752256, 1313.813984, 1197.638788, 1039.577947, 3125.131019,
561.2311988, 767.7541159, 1019.744071, 769.6067294, 2232.404471,
1292.509181, 884.8343164, 663.0273865, 1230.369444, 717.8466364,
1536.027898, 1027.358586), key = c("Change in normalized jerk",
"Change in normalized jerk", "Change in normalized jerk",
"Change in normalized jerk", "Change in normalized jerk",
"Change in normalized jerk", "Change in normalized jerk",
"Change in normalized jerk", "Change in normalized jerk",
"Change in normalized jerk", "Change in normalized jerk",
"Change in normalized jerk", "Change in normalized jerk",
"Change in normalized jerk", "Change in normalized jerk",
"Change in normalized jerk", "Change in normalized jerk",
"Change in normalized jerk", "Change in normalized jerk",
"Change in normalized jerk", "Change in normalized jerk",
"Change in normalized jerk", "Change in normalized jerk",
"Change in normalized jerk")), row.names = c(NA, -24L), class = c("tbl_df",
"tbl", "data.frame"))
library(tidyverse)
library(dumbbell)
dumbbell::dumbbell(data10A, id = "conditon2", key = "Trial_type",
leg = "Test",
column1 = "NormalizedJerk_102",
column2 = "NormalizedJerk_104",
delt = 1, lab1 = "Pre-test", lab2 = "Post-test",
p_col1 = "black", p_col2 = "grey40",
textsize = 4, segsize = 1.5,
pointsize = 2.5,
title = "Change in Normalized jerk from Pre- to Post-test") +
facet_wrap( Trial_type ~ Session., scales="free", ncol=2) +
theme(axis.text.x = element_text(size = 12, face = "bold"),
axis.text.y = element_text(size = 11, face = "bold"),
legend.position = "right",
legend.text = element_text(size = 12),
legend.title = element_text(size = 14),
strip.text = element_text(face = "bold", size = 14, color = "black"))
问题是 dumbbell::dumbbell
在通过 ggplot2
构建哑铃图之前做了一些数据预处理。除其他事项外,在此步骤中会删除不必要的列,即仅保留 dumbbell
参数中指定的列,而在您的情况下包括 Session
列的所有其他列都会被删除。因此,您无法按 Session
.
一种解决方法是向您的数据添加一个新的键列,这只是 Trial_type
和 Session
的交互。然后,您可以将此键列传递给关闭 dumbbell
的 key
参数,并可用作构面变量:
library(ggplot2)
library(dumbbell)
data10A$key <- paste(data10A$Trial_type, data10A$Session, sep = "\n")
dumbbell::dumbbell(data10A, id = "conditon2", key = "key",
leg = "Test",
column1 = "NormalizedJerk_102",
column2 = "NormalizedJerk_104",
delt = 1, lab1 = "Pre-test", lab2 = "Post-test",
p_col1 = "black", p_col2 = "grey40",
textsize = 4, segsize = 1.5,
pointsize = 2.5,
title = "Change in Normalized jerk from Pre- to Post-test") +
facet_wrap( ~ key, scales="free", ncol=2) +
theme(axis.text.x = element_text(size = 12, face = "bold"),
axis.text.y = element_text(size = 11, face = "bold"),
legend.position = "right",
legend.text = element_text(size = 12),
legend.title = element_text(size = 14),
strip.text = element_text(face = "bold", size = 14, color = "black"))
由 reprex package (v2.0.1)
于 2021-11-14 创建