Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在ggplot2中创建多个面_R_Ggplot2_Lattice - Fatal编程技术网

R 在ggplot2中创建多个面

R 在ggplot2中创建多个面,r,ggplot2,lattice,R,Ggplot2,Lattice,您好,我从R中的包carData中找到了以下名为的数据集States。 我试图绘制以下数据 head(States) region pop SATV SATM percent dollars pay AL ESC 4041 470 514 8 3.648 27 AK PAC 550 438 476 42 7.887 43 AZ MTN 3665 445 497 25 4.23

您好,我从R中的包
carData
中找到了以下名为
的数据集States
。 我试图绘制以下数据

head(States)

   region      pop SATV SATM percent dollars pay
AL    ESC     4041  470  514       8   3.648  27
AK    PAC      550  438  476      42   7.887  43
AZ    MTN     3665  445  497      25   4.231  30
AR    WSC     2351  470  511       6   3.334  23
CA    PAC    29760  419  484      45   4.826  39
CO    MTN     3294  456  513      28   4.809  31
我想做的是创建一个图表,显示这个图表中的四个数据。 我想要一个多方面的图表

其中纵轴上的两个变量是SATV和SATM,横轴上的两个变量是美元和工资

例如,有四个盒子,我的右上角是pay和satv之间的关系


如何使用lattice或ggplot2实现这一点。

我第一眼就认为这是一个制作散点图矩阵的问题@punitended建议使用
GGally::ggpairs
,而
GGally::ggduo
中可能也有一些功能。但是,由于你没有寻找所有变量的组合,我意识到这实际上是关于重塑数据的:你有两个独立变量,
dollars
pay
,还有两个从属变量,
SATV
SATM
。您可以对其进行重塑,使其包含一列测试类型和一列测试分数,然后再次进行重塑,生成一列资金类型和一列资金金额。我通过两次调用
tidyr::gather
实现了这一点

库(dplyr)
图书馆(tidyr)
图书馆(GG2)
数据(状态,package=“carData”)
州长%
聚集(键=测试类型,值=分数,SATV,SATM)%>%
聚集(键=资金类型,值=资金值,美元,支付)
主管(州长)
#>地区pop百分比测试\类型分数资金\类型资金\值
#>1 ESC 4041 8卫星电视470美元3.648
#>2 PAC 550 42卫星电视438美元7.887
#>3 MTN 3665 25 SATV 445美元4.231
#>4 WSC 2351 6 SATV 470美元3.334
#>5 PAC 29760 45 SATV 419美元4.826
#>6 MTN 3294 28 SATV 456美元4.809
在这之后,facetting将起作用,因为您现在有了一些方法来分割数据,按资金类型(花费或支付的美元)与测试类型(口头或数学)进行划分

ggplot(状态长,aes(x=资金价值,y=分数))+
几何点()+
分面网格(测试类型~资金类型,scales=“free”)


由(v0.2.0)于2018年7月11日创建。

您是否已经尝试过
ggplot2
facet\u wrap
facet\u grid
?我尝试过,但我不确定如何对四个变量执行该操作。我看的教程只对两个变量执行该操作。如果我阅读正确,您希望成对比较多组变量。这听起来像是你的工作!因为我似乎无法让它在RSure上工作,所以是否可以在不使用tidyverse的情况下重塑数据
tidyverse
实际上是调用多个包的简写——我将替换为这里实际使用的包。不知道为什么只要安装了tidyverse,就无法加载它。或者,您可以使用
reformae2::melt
,尽管我对此不太熟练