R:一个变量与其余变量的配对图

R:一个变量与其余变量的配对图,r,ggplot2,correlation,ggpairs,R,Ggplot2,Correlation,Ggpairs,我想用我的真变量对和所有其他人变量生成一个相关图。我很确定这是在什么地方提出来的,但我发现的解决方案对我来说并不适用 library(ggplot2) set.seed(0) dt = data.frame(matrix(rnorm(120, 100, 5), ncol = 6) ) colnames(dt) = c('Salary', paste0('People', 1:5)) ggplot(dt, aes(x=Salary, y=value)) + geom_point() +

我想用我的真变量对和所有其他人变量生成一个相关图。我很确定这是在什么地方提出来的,但我发现的解决方案对我来说并不适用

library(ggplot2)
set.seed(0)

dt = data.frame(matrix(rnorm(120, 100, 5), ncol = 6) )
colnames(dt) = c('Salary', paste0('People', 1:5))
ggplot(dt, aes(x=Salary, y=value)) +
  geom_point() + 
  facet_grid(.~Salary)
我得到错误:错误:列y必须是1d原子向量或列表

我知道其中一个解决方案是用y写出所有变量——我尽量避免这样做,因为我的真实数据有15列

此外,我不完全确定ggplot中的值、变量指的是什么。我在演示代码时经常看到它们

任何建议都将不胜感激

您需要首先对数据进行堆栈,这可能就是您所看到的

dt <- setNames(stack(dt), c("value", "Salary"))

library(ggplot2)
ggplot(dt, aes(x=Salary, y=value)) +
  geom_point() + 
  facet_grid(.~Salary)
屈服


例如,您希望使用tidyr::gather将数据从宽格式转换为长格式。下面是一个使用tidyverse框架中的包的解决方案

图书馆三年 图书馆GGPLOT2 theme_settheme_bwbase_size=14 set.0 dt=data.framematrixrnorm120100,5,ncol=6 colnamesdt=c‘薪水’,0‘人’,1:5 将数据帧从宽格式转换为长格式 dt_long工资关键值 >1 106.31477人1 98.87866 >298.36883人101.88698 >3 106.64900人1 100.66668 >4106.36215人1104.02095 >5102.07321人199.71447 >692.30025人1102.51804 情节 ggplotdt_long,aesx=工资,y=价值+ 几何点+ 平面网格~钥匙 如果要添加回归线 图书馆 定义回归公式
公式1 y=值没有意义,因为dt中没有值列。你是在试图根据不同群体的人数来划分工资金额吗?我的意思是你想要工资与人的对比1 |工资与人的对比2。。。等等?谢谢,杰,这真的很有帮助。我还有一个快速的问题:是否可以将图形显示为不同的行?例如,对于上面的图形,每行仅显示两个图形,然后下一行再显示两个图形,最后一个图形。是的,您可以查看grid.arrange,如回答中所述。