0

我正在努力解决 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

图片

有人可以帮助我理解吗?

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

4

1 回答 1

1

您不会得到“误差带”,因为您只为每个 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

输出在此处输入图像描述

于 2020-12-02T11:10:55.530 回答