R ggplot:3D矩阵:在图形中绘制多条线,并在同一页面上绘制多个图形
我有一个形状为[1:1000,1:221,1:2]的3D数据矩阵(df) 可再现的示例如下所示:R ggplot:3D矩阵:在图形中绘制多条线,并在同一页面上绘制多个图形,r,ggplot2,data-visualization,data-manipulation,R,Ggplot2,Data Visualization,Data Manipulation,我有一个形状为[1:1000,1:221,1:2]的3D数据矩阵(df) 可再现的示例如下所示: d <- as.data.frame( matrix( 1:(5*2*3), 10, 3)) df = array( unlist(d), dim=c(5, 2, 3)) df , , 1 [,1] [,2] [1,] 1 6 [2,] 2 7 [3,] 3 8 [4,] 4 9 [5,] 5 10 , , 2
d <- as.data.frame( matrix( 1:(5*2*3), 10, 3))
df = array( unlist(d), dim=c(5, 2, 3))
df
, , 1
[,1] [,2]
[1,] 1 6
[2,] 2 7
[3,] 3 8
[4,] 4 9
[5,] 5 10
, , 2
[,1] [,2]
[1,] 11 16
[2,] 12 17
[3,] 13 18
[4,] 14 19
[5,] 15 20
, , 3
[,1] [,2]
[1,] 21 26
[2,] 22 27
[3,] 23 28
[4,] 24 29
[5,] 25 30
d使用数据,您可以首先在数据帧中重新组织阵列(可能有更简单的方法来实现这一部分):
final_df=NULL
nb_人=3
trail=NULL
person=NULL
适用于(i/1:nb_人){
最终测向=rbind(最终测向,测向[,i])
trail=c(trail,1:dim(df[,i])[1])
person=c(person,rep(i,dim(df[,i])[1]))
}
最终测向=数据帧(最终测向)
colnames(final_df)=c(“开始”、“结束”)
最终的_df$trail=trail
最终费用$人=人
起点终点跟踪人
1 1 6 1 1
2 2 7 2 1
3 3 8 3 1
4 4 9 4 1
5 5 10 5 1
6 11 16 1 2
7 12 17 2 2
8 13 18 3 2
9 14 19 4 2
10 15 20 5 2
11 21 26 1 3
12 22 27 2 3
13 23 28 3 3
14 24 29 4 3
15 25 30 5 3
然后,您可以使用软件包tidyr
中的pivot\u longer
功能对其进行重塑(如果安装并加载tidyverse
,将同时安装并加载tidyr
和ggplot2
)
库(tidyverse)
最终的改变形状的%pivot更长(,-c(轨迹,人物),名称改为“变量”,值改为“值”)
#一个tibble:30x4
跟踪人员变量值
1开始1
2 1完6
3 2 1开始2
4 2 1完7
5 3 1开始3
6 3 1完8
7 4 1开始4
8 4 1完9
9 5 1开始5
10 5 1完10
#…还有20行
对于较旧版本的tidyr
如果您有较旧版本的tidyr
(低于1.0.0),则应使用gather
而不是pivot\u longer
。(更多信息请参见此处:)
final\u df\u重塑的%聚集(,-c(trail,person),key=“Variable”,value=“value”)
并使用以下代码绘制它:
ggplot(最终的df整形,aes(x=变量,y=值,组=as.factor(trail),颜色=as.factor(trail)))+
几何点()+
geom_线()+
平面网格(.~人)+
刻度x离散(限值=c(“开始”、“结束”))
它回答了你的问题吗
如果你必须为220个不同的人做这件事,我不确定这是否会形成一个真正清晰的情节。也许你应该考虑另一种方法来绘制它或提取有用的信息 您能否提供一个可复制的阵列示例?添加了可复制的示例我相应地编辑了我的答案,让我知道它是否是我尝试时您正在查找的,我不能。它返回一个错误,说找不到函数“pivot\u longer”。有没有其他解决办法?非常感谢!要使用pivot\u更长时间
,您必须安装tidyverse
或至少tidyr
软件包。是的,我的rstudio中安装了tidyverse,但它仍然找不到“pivot_longer”,因此当我尝试安装更新版本的tidyverse时,我的计算机崩溃。所以,我想知道是否还有其他方法。你有什么版本的R和tidyverse?“R版本3.4.1(2017-06-30)”