繁体   English   中英

ggplot2中的绘图标准化序列

[英]Normalizing series for plotting in ggplot2

我有一个要绘制的数据框,由以下代码生成。

df_rn1 = as.data.frame(cbind(rnorm(40, 1, 1), rep("rn1", 40)))
df_rn2 = as.data.frame(cbind(rnorm(40, 10, 1), rep("rn2", 40)))
df_rn3 = as.data.frame(cbind(rnorm(40, 100, 1), rep("rn3", 40)))

df_test = rbind(df_rn1, df_rn2, df_rn3)
colnames(df_test) <- c("value", "type")

我想绘制由各自的第一个观察值归一化的数据框,它们已正确缩放。 但是,我没有比这更深入的了:

ggplot(aes(x = rep(1:40, 3), y=as.numeric(as.character(value)), color = type), data = df_test) +
      geom_line()

是否可以直接在ggplot代码中按类型进行归一化?

谢谢

这个怎么样?

library(tidyverse);
df_test %>%
    group_by(type) %>%
    mutate(
        value = as.numeric(as.character(value)),
        value.scaled = (value - mean(value)) / sd(value),
        idx = 1:n()) %>%
    ggplot(aes(idx, value.scaled, colour = type)) + geom_line()

在此处输入图片说明

注意值type缩放; 不知道要做什么,要进行全局扩展,请参阅@ManishSaraswat的答案。

您可以使用scale功能对值进行归一化。

df_test %>% 
    mutate(value = scale(value)) %>% 
    ggplot(aes(x = rep(1:40, 3), y = value, color=type))+
    geom_line()

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM