我想包括 y_val
的可能值范围,其中上限和下限可用。我尝试使用 geom_errorbar
,它适用于连续刻度但不适用于对数刻度。我该如何解决这个问题?
x_val <- c(2, 3, 6, 12, 24)
y_val<-c(1,3,15,25,30)
y_upper<- c(1.2,3.2, 16, 28,40)
y_lower <-c(0.8,2.9, 12, 22,25)
df <- data.frame(x_val=x_val,y_val=y_val,y_upper=y_upper,
y_lower=y_lower)
ggplot(data=df,aes(x=x_val,y=y_val))+
geom_line()+
geom_point()+
geom_errorbar(ymin = y_lower, ymax = y_upper)+
scale_y_log10()+
scale_x_log10()
答案 0 :(得分:3)
根据 this 个答案,您需要 coord_trans(y = "log10")
而不是 scale_y_log10()
library(ggplot2)
x_val <- c(2, 3, 6, 12, 24)
y_val<-c(1,3,15,25,30)
y_upper<- c(1.2,3.2, 16, 28,40)
y_lower <-c(0.8,2.9, 12, 22,25)
df <- data.frame(x_val=x_val,
y_val=y_val,
y_upper=y_upper,
y_lower=y_lower)
ggplot(data=df,aes(x=x_val,y=y_val))+
geom_line()+
geom_point()+
geom_errorbar(ymin = y_lower, ymax = y_upper)+
coord_trans(y="log10", x = "log10", ylim = range(c(y_upper, y_lower)))
由 reprex package (v1.0.0) 于 2021 年 3 月 16 日创建
答案 1 :(得分:0)