R 用于在ggplot2中打印的规格化系列

R 用于在ggplot2中打印的规格化系列,r,ggplot2,R,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_

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

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代码中按类型进行规范化


Thx

您可以使用
缩放
函数来规范化值

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

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


请注意,值在
类型中缩放;不确定您的目标是什么,有关全局扩展,请参阅@ManishSaraswat的答案

您好,谢谢,但是结果应该是按类型rn1、rn2、rn3。请看上面aes中的颜色。嗨,是的。我的意思是在类型内缩放
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()