例如,假设我有两个不同尺度的变量;

df = data.table::data.table(
  date = seq(from = lubridate::ymd("2010-01-01"), 
             to = lubridate::ymd("2020-01-01"), length = 100),
  var1 = rpois(n = 100, lambda = 84),
  var2 = rpois(n = 100, lambda = 300)
)

如果我决定使用双y轴绘图,使用代码;

library(ggplot)

df |> 
  ggplot(aes(x = date)) +
  geom_line(aes(y = var1), col = "royalblue") +
  geom_line(aes(y = var2), col = "red") +
  scale_y_continuous(
    name = "var1",
    sec.axis = sec_axis(~., name = "var2")
  ) +
  theme_light()

研究结果如下:

enter image description here

如何调整第二个y轴的极限,例如,从250开始,到400结束?这将使线条更接近,从而可以更清楚地看到趋势.

推荐答案

您可以在绘制时转换数据,然后在调用sec_axis()时undo撤消转换.在这里,我只需从数据值中减go 200,然后将200添加到标签以反映更改:

library(ggplot2)
library(data.table)
library(lubridate)
df = data.table(
  date = seq(from = ymd("2010-01-01"), to = ymd("2020-01-01"), length = 100),
  var1 = rpois(n = 100, lambda = 84),
  var2 = rpois(n = 100, lambda = 300)
)

df |> 
  ggplot(aes(x = date)) +
  geom_line(aes(y = var1), col = "royalblue") +
  geom_line(aes(y = var2-200), col = "red") +
  scale_y_continuous(
    name = "var1",
    sec.axis = sec_axis(~.+200, name = "var2")
  ) +
  theme_light()

创建于2024-01-25年第reprex v2.0.2

R相关问答推荐

创建重复删除的唯一数据集组合列表

在特定列上滞后n行,同时扩展框架的长度

更新合适的R mgcv::bam模型报告无效类型(关闭).'';错误

带有gplot 2的十字舱口

从gtsummary包中使用tBL_strata()和tBL_summary()时删除变量标签

名称输出pmap on tible

RStudio中相关数据的分组箱形图

如何将旋转后的NetCDF转换回正常的纬度/经度网格,并使用R?

根据元素和前一个值之间的差值过滤矩阵的元素

R中1到n_1,2到n_2,…,n到n_n的所有组合都是列表中的向量?

从多个线性回归模型中提取系数

如何通过匹配R中所有可能的组合来从宽到长旋转多个列?

使用Scale_*_MANUAL时在图例中保留未使用的系数级别

`夹心::vcovCL`不等于`AER::tobit`标准错误

删除字符串R中的重复项

在r中整理图例和堆叠图的问题

TidyVerse中长度不等的列结合向量

按镜像列值自定义行顺序

创建两个变量组合的索引矩阵

带查找数据的FCT_REORDER.帧