我在這里得到了幫助,將 facet-wrap 用于我的啞鈴圖,但我想為我的圖表創建空間。這是帶有 facet_wrap 的當前圖。所以我只希望 y-ticks 出現一次(即,在左邊的圖中)
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(ggplot2)
library(dumbbell)
library(ggh4x)
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"))
uj5u.com熱心網友回復:
TBMK 您想要的結果無法facet_nested單獨實作。問題是,scales="free"你最終會得到一個“重復”的每個面的 y 尺度。但是,簡單地洗掉scales="free"不是一種選擇,因為在這種情況下,您最終會得到一個圖表,顯示condition2每個方面中未使用的類別。
因此,實作您想要的結果的一種選擇是為每個繪制單獨的繪圖Trial_Type并使用例如將它們粘合在一起patchwork。這將允許您洗掉scales="free". 此外,為了利用facet_nested(_wrap)我放棄了dumbbell和構建從頭使用啞鈴圖表geom_segment及geom_point加geom_text添加標簽的差異。
library(ggplot2)
library(ggh4x)
library(patchwork)
library(magrittr)
make_dumbbell <- function(x, max_x) {
n_y <- length(unique(x$conditon2))
x$conditon2 <- as.character(x$conditon2)
ggplot(x, aes(y = conditon2, yend = conditon2))
geom_segment(aes(x = NormalizedJerk_102, xend = NormalizedJerk_104), size = 1.5, color = "gray80")
geom_point(aes(NormalizedJerk_102, color = "pre"), size = 2.5)
geom_point(aes(NormalizedJerk_104, color = "post"), size = 2.5)
geom_text(aes(label = scales::number(abs(NormalizedJerk_104 - NormalizedJerk_102), accuracy = .1)),
x = max_x, hjust = 1, fontface = "bold"
)
annotate(geom = "text", label = "DIFF", y = n_y 1, x = max_x, color = "red", fontface = "bold", hjust = 1)
scale_y_discrete(expand = expansion(add = c(.6, 1.6)))
scale_color_manual(values = c(pre = "black", post = "grey40"), labels = c(pre = "Pre-Test", post = "Post-Test"))
facet_nested_wrap(~ Trial_type Session)
theme_bw()
theme(
axis.text.x = element_text(size = 12, face = "bold"),
axis.text.y = element_text(size = 11, face = "bold"),
legend.position = "top",
legend.text = element_text(size = 12),
legend.title = element_text(size = 14),
strip.text = element_text(face = "bold", size = 14, color = "black")
)
labs(x = NULL, y = NULL, color = "Test")
}
max_x <- 1.25 * max(c(data10A$NormalizedJerk_102, data10A$NormalizedJerk_104))
data10A %>%
split(.$Trial_type) %>%
lapply(make_dumbbell, max_x = max_x) %>%
wrap_plots(ncol = 1)
plot_layout(guides = "collect") &
theme(
legend.position = "top"
)

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/358885.html
上一篇:將圖例標題放置在水平圖例的頂部會導致ggiraph中的互動性丟失
下一篇:在回歸線R中添加 -2SE
