R - ggplot2 - 在具有两个 y 轴的图表上执行双 geom_smooth() 时无法看到标准误差范围

R - ggplot2 - Unable to see the standard error range doing a double geom_smooth() on a graph with two y axis

我为解决 R 的问题而苦苦挣扎。我喜欢制作一个图表,其中有两个 y 变量,指的是两个不同的 y 轴。一切正常,但我无法获得错误带的深灰色区域。无法理解原因,试了好几次

代码下方:

Dati <- data.frame("Vix" = c(62500, 87000, 122000, 140000, 154000), "monomer" = c(1.25,2.10,2.99,4.05,5.55), "Time" = c(30,60,90,120,135))
attach(Dati)
library(ggplot2)
library(readxl)


scaleFactor <- max(Vix) / max(monomer)
Graph <- ggplot(Dati, aes(x= Time)) +

geom_smooth(aes(y= Vix), method="loess", col='#f92410') +
geom_smooth(aes(y=monomer * scaleFactor), method="loess", col='#644196') +

  scale_y_continuous(name="Vix", sec.axis=sec_axis(~./scaleFactor, name="monomer")) +
  theme(
    axis.title.y.left=element_text(color='#f92410'),
    axis.text.y.left=element_text(color='#f92410'),
    axis.title.y.right=element_text(color='#644196'),
    axis.text.y.right=element_text(color='#644196')
  )

Graph

Image

有人能帮我理解一下吗?

预先感谢您的每一个回复!

您不会得到 'error band',因为您只为每个 x 定义了单个 y 值。如果每个 x 有多个 y 值,则波段会以默认设置显示。

(为 30、60 和 90 添加了一些随机 y 值。简化代码以减少混乱。)

Dati <- data.frame("Vix" = c(40000, 62500, 80000, 60000, 87000, 12000, 122000, 180000, 80000, 140000, 154000), "Time" = c(30, 30, 30 ,60, 60, 60 ,90, 90, 90, 120, 135))
attach(Dati)
library(ggplot2)
library(readxl)

scaleFactor <- max(Vix) / max(monomer)
Graph <- ggplot(Dati, aes(x= Time)) +
     
     geom_smooth(aes(y=Vix), method="loess", col='#f92410') 

Graph

输出