R语言ggplot2对 iris_subset 数据框中的两个变量分别进行零-均值规范化 (标准化) 和最小-最大规范化 原始数据 iris_subset 的散点图,颜色区分不同鸢尾花种类
时间: 2024-12-19 08:14:27 浏览: 6
在R语言中,使用ggplot2绘制散点图并进行数据预处理时,首先需要加载必要的库,比如`ggplot2`、`dplyr`(用于数据操作)和`scale_*_trans`(用于数据转换)。这里假设`iris_subset`是一个包含`Species`(鸢尾花种类)、两个自变量的数据框。
1. 首先,我们需要加载数据并查看前几行了解数据结构:
```R
library(ggplot2)
library(dplyr)
# 加载数据集
data(iris)
iris_subset <- iris %>% select(Species, var1, var2) # 假设var1和var2是你想要可视化的两个变量
head(iris_subset)
```
2. 对数据进行标准化(zero-mean normalization 或z-score标准化):
```R
# 使用dplyr的mutate函数计算标准化后的数据
iris_subset_znorm <- iris_subset %>%
mutate(var1_znorm = scale(var1, center = TRUE, scale = TRUE),
var2_znorm = scale(var2, center = TRUE, scale = TRUE))
```
3. 对数据进行最小-最大规范化(min-max normalization):
```R
iris_subset_minmax <- iris_subset %>%
mutate(var1_minmax = scale(var1, center = min(var1), scale = max(var1)),
var2_minmax = scale(var2, center = min(var2), scale = max(var2)))
```
4. 然后你可以使用ggplot2分别创建这两个规范化后的散点图,并添加颜色分组:
```R
# 标准化散点图
ggplot(iris_subset_znorm, aes(x=var1_znorm, y=var2_znorm, color=Species)) +
geom_point() +
labs(title="Z-score Normalized Scatter Plot", x="Normalized Var1", y="Normalized Var2")
# 最小-最大规范化散点图
ggplot(iris_subset_minmax, aes(x=var1_minmax, y=var2_minmax, color=Species)) +
geom_point() +
labs(title="Min-Max Normalized Scatter Plot", x="Normalized Var1", y="Normalized Var2")
```
阅读全文