gpt4 book ai didi

r - Ggplot 网格标签上 2 个不同希腊符号的向量

转载 作者:行者123 更新时间:2023-12-05 01:49:47 25 4
gpt4 key购买 nike

我想以相同的顺序放置以下内容\phi = 0.4,\theta = 0.4 在第 1 列中\phi = 0.45,\theta = 0.45 在第 2 列中和\phi = 0.35,\theta = 0.5 在第 3 列中

library(reshape2)
set.seed(199)
ARMA11_MAE_MBB_sd1_psi0.8 <- runif(4, min = 0, max = 2)
ARMA11_MAE_MBBR_sd1_psi0.8 <- runif(4, min = 0, max = 2)
ARMA11_MAE_MBB_sd1_psi0.9 <- runif(4, min = 0, max = 2)
ARMA11_MAE_MBBR_sd1_psi0.9 <- runif(4, min = 0, max = 2)
ARMA11_MAE_MBB_sd1_psi0.95 <- runif(4, min = 0, max = 2)
ARMA11_MAE_MBBR_sd1_psi0.95 <- runif(4, min = 0, max = 2)

ARMA11_MAE_MBB_sd3_psi0.8 <- runif(4, min = 2, max = 5)
ARMA11_MAE_MBBR_sd3_psi0.8 <- runif(4, min = 2, max = 5)
ARMA11_MAE_MBB_sd3_psi0.9 <- runif(4, min = 2, max = 5)
ARMA11_MAE_MBBR_sd3_psi0.9 <- runif(4, min = 2, max = 5)
ARMA11_MAE_MBB_sd3_psi0.95 <- runif(4, min = 2, max = 5)
ARMA11_MAE_MBBR_sd3_psi0.95 <- runif(4, min = 2, max = 5)

ARMA11_MAE_MBB_sd5_psi0.8 <- runif(4, min = 5, max = 10)
ARMA11_MAE_MBBR_sd5_psi0.8 <- runif(4, min = 5, max = 10)
ARMA11_MAE_MBB_sd5_psi0.9 <- runif(4, min = 5, max = 10)
ARMA11_MAE_MBBR_sd5_psi0.9 <- runif(4, min = 5, max = 10)
ARMA11_MAE_MBB_sd5_psi0.95 <- runif(4, min = 5, max = 10)
ARMA11_MAE_MBBR_sd5_psi0.95 <- runif(4, min = 5, max = 10)

ARMA11_MAE_MBB_sd10_psi0.8 <- runif(4, min = 10, max = 16)
ARMA11_MAE_MBBR_sd10_psi0.8 <- runif(4, min = 10, max = 16)
ARMA11_MAE_MBB_sd10_psi0.9 <- runif(4, min = 10, max = 16)
ARMA11_MAE_MBBR_sd10_psi0.9 <- runif(4, min = 10, max = 16)
ARMA11_MAE_MBB_sd10_psi0.95 <- runif(4, min = 10, max = 16)
ARMA11_MAE_MBBR_sd10_psi0.95 <- runif(4, min = 10, max = 16)

library(tibble)

ID <- rep(rep(c("10", "15", "20", "25"), 1), 1))
ARMA11_MAE_df1 <- data.frame(ID, ARMA11_MAE_MBB_sd1_psi0.8, ARMA11_MAE_MBBR_sd1_psi0.8, ARMA11_MAE_MBB_sd1_psi0.9, ARMA11_MAE_MBBR_sd1_psi0.9, ARMA11_MAE_MBB_sd1_psi0.95, ARMA11_MAE_MBBR_sd1_psi0.95, ARMA11_MAE_MBB_sd3_psi0.8, ARMA11_MAE_MBBR_sd3_psi0.8, ARMA11_MAE_MBB_sd3_psi0.9, ARMA11_MAE_MBBR_sd3_psi0.9, ARMA11_MAE_MBB_sd3_psi0.95, ARMA11_MAE_MBBR_sd3_psi0.95, ARMA11_MAE_MBB_sd5_psi0.8, ARMA11_MAE_MBBR_sd5_psi0.8, ARMA11_MAE_MBB_sd5_psi0.9, ARMA11_MAE_MBBR_sd5_psi0.9, ARMA11_MAE_MBB_sd5_psi0.95, ARMA11_MAE_MBBR_sd5_psi0.95, ARMA11_MAE_MBB_sd10_psi0.8, ARMA11_MAE_MBBR_sd10_psi0.8, ARMA11_MAE_MBB_sd10_psi0.9, ARMA11_MAE_MBBR_sd10_psi0.9, ARMA11_MAE_MBB_sd10_psi0.95, ARMA11_MAE_MBBR_sd10_psi0.95)

ARMA11_MAE_reshapp1 <- reshape2::melt(ARMA11_MAE_df1, id = "ID")
ARMA11_MAE_reshapp1 <- unique(ARMA11_MAE_reshapp1)

library(ggplot2)
library(tibble)

# Instead of using a character vector make your psi column a list column.

ARMA11_MAE_NEWDAT <- tibble::tibble(
MAE = ARMA11_MAE_reshapp1$value,
year = ARMA11_MAE_reshapp1$ID,
n = rep(rep(c("10", "15", "20", "25"), each = 1), 24),
Methods = rep(rep(c("MBB", "MBBR"), each = 4), 12),
sd = rep(rep(c(1, 3, 5, 10), each = 24), 1),
psi = rep(rep(list(c(0.5, 0.3), c(0.5, 0.4), c(0.35, 0.6)), each = 8), 4))

ARMA11_MAE_NEWDAT$sd <- factor(ARMA11_MAE_NEWDAT$sd, levels = ARMA11_MAE_NEWDAT$sd, labels = paste("sd ==", ARMA11_MAE_NEWDAT$sd))
ARMA11_MAE_NEWDAT$year <- factor(ARMA11_MAE_NEWDAT$year, levels = ARMA11_MAE_NEWDAT$year[1:4])
ARMA11_MAE_NEWDAT$n <- factor(ARMA11_MAE_NEWDAT$n, levels = ARMA11_MAE_NEWDAT$n[1:4])

# Create the labels
ARMA11_MAE_NEWDAT$psi <- purrr::map_chr(ARMA11_MAE_NEWDAT$psi, function(x) {
paste(paste0("psi[", seq_along(x), "]==", x), collapse = "*textstyle(',')~", sep = "")
})

ggplot(ARMA11_MAE_NEWDAT, aes(x = n, y = MAE, group = Methods)) +
geom_point(aes(shape = Methods)) +
geom_line(aes(linetype = Methods)) +
xlab("Sample Size(n)") +
ylab("MAE") +
facet_grid(sd ~ psi, scales = "free_y", labeller = label_parsed) +
scale_y_continuous(expand = c(0.0, 0.0)) +
theme_bw(14) +
theme(axis.text.x = element_text(angle = -90, vjust = 0.5)) +
theme(axis.title.x = element_text(size = rel(1.00), angle = 0)) +
theme(axis.title.y = element_text(size = rel(.55), angle = 90)) +
theme(legend.title = element_text(size = 12), legend.text = element_text(size = 10))

我有this output

我想要什么

我什么\phi = "",\theta = ""在每一列 [![like this image][2]][2]

最佳答案

一个选项是首先为 phitheta 值创建单独的列。然后通过例如创建 plotmath 标签粘贴0。要获得面板的正确顺序,请将标签列转换为一个因子:

library(ggplot2)
library(purrr)

ARMA11_MAE_NEWDAT$phi1 <- purrr::map_dbl(ARMA11_MAE_NEWDAT$psi, 1)
ARMA11_MAE_NEWDAT$theta1 <- purrr::map_dbl(ARMA11_MAE_NEWDAT$psi, 2)

ARMA11_MAE_NEWDAT$label <- paste0("varphi==", ARMA11_MAE_NEWDAT$phi1, "*textstyle(',')~", "theta==", ARMA11_MAE_NEWDAT$theta1)

ARMA11_MAE_NEWDAT$label <- factor(ARMA11_MAE_NEWDAT$label, levels = unique(ARMA11_MAE_NEWDAT$label))

ggplot(ARMA11_MAE_NEWDAT, aes(x = n, y = MAE, group = Methods)) +
geom_point(aes(shape = Methods)) +
geom_line(aes(linetype = Methods)) +
xlab("Sample Size(n)") +
ylab("RMSE") +
ggplot2::facet_grid(sd ~ label, scales = "free_y", labeller = label_parsed) +
scale_y_continuous(expand = c(0.0, 0.0)) +
theme_bw(18) +
theme(axis.text.x = element_text(angle = -90, vjust = 0.5)) +
theme(axis.title.x = element_text(size = rel(1.00), angle = 0)) +
theme(axis.title.y = element_text(size = rel(.55), angle = 90)) +
theme(legend.title = element_text(size = 12), legend.text = element_text(size = 10))

enter image description here

数据

library(reshape2)
library(tibble)

set.seed(199)
ARMA11_MAE_MBB_sd1_psi0.8 <- runif(4, min = 0, max = 2)
ARMA11_MAE_MBBR_sd1_psi0.8 <- runif(4, min = 0, max = 2)
ARMA11_MAE_MBB_sd1_psi0.9 <- runif(4, min = 0, max = 2)
ARMA11_MAE_MBBR_sd1_psi0.9 <- runif(4, min = 0, max = 2)
ARMA11_MAE_MBB_sd1_psi0.95 <- runif(4, min = 0, max = 2)
ARMA11_MAE_MBBR_sd1_psi0.95 <- runif(4, min = 0, max = 2)

ARMA11_MAE_MBB_sd3_psi0.8 <- runif(4, min = 2, max = 5)
ARMA11_MAE_MBBR_sd3_psi0.8 <- runif(4, min = 2, max = 5)
ARMA11_MAE_MBB_sd3_psi0.9 <- runif(4, min = 2, max = 5)
ARMA11_MAE_MBBR_sd3_psi0.9 <- runif(4, min = 2, max = 5)
ARMA11_MAE_MBB_sd3_psi0.95 <- runif(4, min = 2, max = 5)
ARMA11_MAE_MBBR_sd3_psi0.95 <- runif(4, min = 2, max = 5)

ARMA11_MAE_MBB_sd5_psi0.8 <- runif(4, min = 5, max = 10)
ARMA11_MAE_MBBR_sd5_psi0.8 <- runif(4, min = 5, max = 10)
ARMA11_MAE_MBB_sd5_psi0.9 <- runif(4, min = 5, max = 10)
ARMA11_MAE_MBBR_sd5_psi0.9 <- runif(4, min = 5, max = 10)
ARMA11_MAE_MBB_sd5_psi0.95 <- runif(4, min = 5, max = 10)
ARMA11_MAE_MBBR_sd5_psi0.95 <- runif(4, min = 5, max = 10)

ARMA11_MAE_MBB_sd10_psi0.8 <- runif(4, min = 10, max = 16)
ARMA11_MAE_MBBR_sd10_psi0.8 <- runif(4, min = 10, max = 16)
ARMA11_MAE_MBB_sd10_psi0.9 <- runif(4, min = 10, max = 16)
ARMA11_MAE_MBBR_sd10_psi0.9 <- runif(4, min = 10, max = 16)
ARMA11_MAE_MBB_sd10_psi0.95 <- runif(4, min = 10, max = 16)
ARMA11_MAE_MBBR_sd10_psi0.95 <- runif(4, min = 10, max = 16)

library(tibble)

ID <- rep(rep(c("10", "15", "20", "25"), 1), 1)
ARMA11_MAE_df1 <- data.frame(ID, ARMA11_MAE_MBB_sd1_psi0.8, ARMA11_MAE_MBBR_sd1_psi0.8, ARMA11_MAE_MBB_sd1_psi0.9, ARMA11_MAE_MBBR_sd1_psi0.9, ARMA11_MAE_MBB_sd1_psi0.95, ARMA11_MAE_MBBR_sd1_psi0.95, ARMA11_MAE_MBB_sd3_psi0.8, ARMA11_MAE_MBBR_sd3_psi0.8, ARMA11_MAE_MBB_sd3_psi0.9, ARMA11_MAE_MBBR_sd3_psi0.9, ARMA11_MAE_MBB_sd3_psi0.95, ARMA11_MAE_MBBR_sd3_psi0.95, ARMA11_MAE_MBB_sd5_psi0.8, ARMA11_MAE_MBBR_sd5_psi0.8, ARMA11_MAE_MBB_sd5_psi0.9, ARMA11_MAE_MBBR_sd5_psi0.9, ARMA11_MAE_MBB_sd5_psi0.95, ARMA11_MAE_MBBR_sd5_psi0.95, ARMA11_MAE_MBB_sd10_psi0.8, ARMA11_MAE_MBBR_sd10_psi0.8, ARMA11_MAE_MBB_sd10_psi0.9, ARMA11_MAE_MBBR_sd10_psi0.9, ARMA11_MAE_MBB_sd10_psi0.95, ARMA11_MAE_MBBR_sd10_psi0.95)

ARMA11_MAE_reshapp1 <- reshape2::melt(ARMA11_MAE_df1, id = "ID")
ARMA11_MAE_reshapp1 <- unique(ARMA11_MAE_reshapp1)

library(ggplot2)
library(tibble)

# Instead of using a character vector make your psi column a list column.

ARMA11_MAE_NEWDAT <- tibble::tibble(
MAE = ARMA11_MAE_reshapp1$value,
year = ARMA11_MAE_reshapp1$ID,
n = rep(rep(c("10", "15", "20", "25"), each = 1), 24),
Methods = rep(rep(c("MBB", "MBBR"), each = 4), 12),
sd = rep(rep(c(1, 3, 5, 10), each = 24), 1),
psi = rep(rep(list(c(0.5, 0.3), c(0.5, 0.4), c(0.35, 0.6)), each = 8), 4)
)

ARMA11_MAE_NEWDAT$sd <- factor(ARMA11_MAE_NEWDAT$sd, levels = ARMA11_MAE_NEWDAT$sd, labels = paste("sd ==", ARMA11_MAE_NEWDAT$sd))
ARMA11_MAE_NEWDAT$year <- factor(ARMA11_MAE_NEWDAT$year, levels = ARMA11_MAE_NEWDAT$year[1:4])
ARMA11_MAE_NEWDAT$n <- factor(ARMA11_MAE_NEWDAT$n, levels = ARMA11_MAE_NEWDAT$n[1:4])

关于r - Ggplot 网格标签上 2 个不同希腊符号的向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73684824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com