R 在平行坐标图上为每个变量添加平均线
使用iris数据集,我可以绘制如下的平行坐标图R 在平行坐标图上为每个变量添加平均线,r,ggplot2,R,Ggplot2,使用iris数据集,我可以绘制如下的平行坐标图 library(GGally) ggparcoord(data=iris,columns = (2:4),groupColumn = "Species") 我还想在同一个图上绘制每种花卉的每个变量的平均值。我该怎么做 我曾经考虑过用平均值制作一个新的数据框,但这看起来真的很不雅观 我认为在这里需要使用means创建一个额外的数据帧,因为仅使用参数ggparcoord提供的选项无法实现这一点 使用dplyr/tidyverse准备数据帧并进行打印,
library(GGally)
ggparcoord(data=iris,columns = (2:4),groupColumn = "Species")
我还想在同一个图上绘制每种花卉的每个变量的平均值。我该怎么做
我曾经考虑过用平均值制作一个新的数据框,但这看起来真的很不雅观 我认为在这里需要使用means创建一个额外的数据帧,因为仅使用参数
ggparcoord
提供的选项无法实现这一点
使用dplyr/tidyverse准备数据帧并进行打印,如下所示:
libary(dplyr)
scaled_means <- iris %>%
select(- Sepal.Length) %>%
# Need to scale in the same as ggparcoord is doing
mutate_at(vars(- Species), ~ scale(.)[, 1]) %>%
group_by(Species) %>%
summarize_all(mean) %>%
pivot_longer(- Species, names_to = "variable", values_to = "value")
ggparcoord(data=iris,columns = (2:4),groupColumn = "Species") +
geom_point(data = scaled_means, aes(x = variable, y = value, colour = Species),
size = 3,
inherit.aes = FALSE)
libary(dplyr)
比例单位表示%
选择(-萼片长度)%>%
#需要像ggparcoord一样进行扩展
在(变数(-种),~scale(.)[,1])%>%处突变
组别(种类)%>%
汇总所有(平均值)%>%
pivot_longer(-Species,name_to=“variable”,values_to=“value”)
ggparcoord(数据=虹膜,列=(2:4),groupColumn=“物种”)+
几何点(数据=标度平均值,aes(x=变量,y=值,颜色=物种),
尺寸=3,
inherit.aes=FALSE)
结果:
我认为在这里需要使用方法创建一个额外的数据帧,因为仅使用参数
ggparcoord
提供的选项无法实现这一点
使用dplyr/tidyverse准备数据帧并进行打印,如下所示:
libary(dplyr)
scaled_means <- iris %>%
select(- Sepal.Length) %>%
# Need to scale in the same as ggparcoord is doing
mutate_at(vars(- Species), ~ scale(.)[, 1]) %>%
group_by(Species) %>%
summarize_all(mean) %>%
pivot_longer(- Species, names_to = "variable", values_to = "value")
ggparcoord(data=iris,columns = (2:4),groupColumn = "Species") +
geom_point(data = scaled_means, aes(x = variable, y = value, colour = Species),
size = 3,
inherit.aes = FALSE)
libary(dplyr)
比例单位表示%
选择(-萼片长度)%>%
#需要像ggparcoord一样进行扩展
在(变数(-种),~scale(.)[,1])%>%处突变
组别(种类)%>%
汇总所有(平均值)%>%
pivot_longer(-Species,name_to=“variable”,values_to=“value”)
ggparcoord(数据=虹膜,列=(2:4),groupColumn=“物种”)+
几何点(数据=标度平均值,aes(x=变量,y=值,颜色=物种),
尺寸=3,
inherit.aes=FALSE)
结果:
~scale(.)[,1]1在这里做什么?该代码是否总是根据ggparcoord中使用的缩放方法缩放平均值?scale()
在base R中有点烦人,它将结果作为矩阵返回,因此[,1]
将该列从矩阵中拉出并使其成为向量。我编写的代码与ggparcoord
中的默认缩放匹配,但是如果更改ggparcoord
缩放选项,则必须更改代码。~scale(.)[,1]1在这里做什么?该代码是否总是根据ggparcoord中使用的缩放方法缩放平均值?scale()
在base R中有点烦人,它将结果作为矩阵返回,因此[,1]
将该列从矩阵中拉出并使其成为向量。我编写的代码与ggparcoord
中的默认缩放匹配,但是如果更改ggparcoord
缩放选项,则必须更改代码。