我正在嘗試使用tidyverse更多,并pivot_longer稍后在上面繪制錯誤欄geom_errorbar(一個虛線和一個實線),但我相信我沒有正確構建長格式,或者 error_bars 與函式沒有很好的連接。
data<- data.frame(
Date=(1:12),
A=c(0,0,0,28.0,20.6,15.8,38.9,9.5,16.2,20.6,22.6,15.1),
B= c(0,0,0,9.1,6.0,4.76,12.7,4.3,5.7,8.0,9.01,6.5),
A_sd= c(0,0,0,6.3,11.4,1.49,6.96,1.23,1.4,1.15,6.3,1.2),
B_sd=c(0,0,0,1.90,3.1,0.24,1.8,1.16,0.4,1.4,2.4,0.5))
LINETYPE1 <- c("A" = "solid", "B" = "dashed")
library(tidyverse)
data %>%
select(A, B, A_sd, B_sd, Date) %>%
pivot_longer(cols = -Date, -A_sd, -B_sd) %>%
ggplot(aes(Date, value, linetype = name))
geom_line()
geom_point()
scale_y_continuous(sec.axis = sec_axis(~./10, name= expression(paste("B", " (units)"))))
scale_linetype_manual(name= "", values= LINETYPE1, labels=c(bquote(A ~ (pg ~cell ^-1)), bquote(B ~ (units))))
scale_x_datetime(labels = date_format("%b"))
theme_classic()
ylab(bquote(A ~ (units)))
geom_errorbar(aes(ymin = A, ymax = A A_sd),
position = position_dodge2(padding = 0.6, width = 0.5))
geom_errorbar(aes(ymin = B, ymax = B B_sd),
position = position_dodge2(padding = 0.6, width = 0.5))
xlab("")
這現在給出了錯誤:
build_longer_spec 中的錯誤(資料,!!cols,names_to = names_to,values_to = values_to,:找不到物件'B_sd'
我很想得到這樣的東西

uj5u.com熱心網友回復:
是的,你的支點不太對。從您的示例資料中執行此操作的最簡單方法是首先將Aand重命名為and之B類的名稱,然后使用. 這樣,您可以呼叫:A_meanB_meannames_seppivot_longer
pivot_longer(-Date, names_sep = "_", names_to = c("group", ".value"))
為日期、組 (A/B)、平均值和標準差各留一列。
完整的代碼是這樣的:
data %>%
select(A, B, A_sd, B_sd, Date) %>%
rename(A_mean = A, B_mean = B) %>%
pivot_longer(-Date, names_sep = "_", names_to = c("group", ".value")) %>%
ggplot(aes(Date, mean, linetype = group))
geom_line()
geom_point()
scale_y_continuous(sec.axis = sec_axis(~./10,
name= expression(paste("B", " (units)"))))
scale_linetype_manual(name= "", values = LINETYPE1,
labels=c(bquote(A ~ (pg ~cell ^-1)),
bquote(B ~ (units))))
scale_x_datetime(labels = scales::date_format("%b"))
theme_classic(base_size = 16)
ylab(bquote(A ~ (units)))
geom_errorbar(aes(ymin = mean -sd, ymax = mean sd), alpha = 0.5)
xlab("")

請注意,我必須稍微修改您的輸入資料以將Date列更改為實際日期,否則您的scale_x_datetime呼叫將不起作用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/476657.html
上一篇:使用以下命令在ggbox圖中標記單個框時標簽亂序:stat_summary(geom='text',label=letters
