【问题标题】:ggplot secondary y axes showing z scores using sec_axisggplot 次 y 轴使用 sec_axis 显示 z 分数
【发布时间】:2017-08-31 15:40:33
【问题描述】:

ggplot2 现在允许添加辅助 y 轴,如果它是主轴的一对一变换。

对于我的图表,我想在左侧 y 轴上绘制原始单位,在右侧 y 轴上绘制 z 分数,但在实践中我无法弄清楚如何做到这一点。

documentation 建议使用 sec_axis() 函数添加此辅助轴,例如,

scale_y_continuous(sec.axis = sec_axis(~.+10))

创建比第一个高 10 个单位的第二个 y 轴。

Z 分数 can be created in R using the scale() function。所以我假设我可以做这样的事情来获得第二个显示 z 分数的 y 轴:

scale_y_continuous(sec.axis = sec_axis(scale(~.)))

但是,这会返回“无效的第一个参数”错误。

有没有人知道如何进行这项工作?

【问题讨论】:

  • 我想是~scale(.)

标签: r plot ggplot2 axes


【解决方案1】:

您可以使用 z 分数转换公式。这很好用:

library(tidyverse)
library(scales)
df <- data.frame(val = c(1:30), var = rnorm(30, 10,2))
p <- ggplot() + geom_line(data = df, aes( x = val, y = var))
p <- p + scale_y_continuous("variable", sec.axis = sec_axis(trans = ~./ sd(df$var) - mean(df$var)/ sd(df$var), "standarized variable"))
p

或者:

p + scale_y_continuous("variable", sec.axis = sec_axis(~ scale(.), "standarized variable"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    • 2022-08-03
    • 2011-09-26
    • 2021-01-04
    相关资源
    最近更新 更多