gpt4 book ai didi

r - ggplot 辅助 y 轴使用 sec_axis 显示 z 分数

转载 作者:行者123 更新时间:2023-12-04 11:52:16 26 4
gpt4 key购买 nike

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(~.)))

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

有没有人知道如何让它工作?

最佳答案

您可以使用 z-score 转换公式。这很有效:

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"))

enter image description here

关于r - ggplot 辅助 y 轴使用 sec_axis 显示 z 分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43241103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com