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 “创建二维/三维矩阵”;“对象”;从数据列中选择,并将其进一步绘制为等高线图_R_Matrix_Ggplot2 - Fatal编程技术网

R “创建二维/三维矩阵”;“对象”;从数据列中选择,并将其进一步绘制为等高线图

R “创建二维/三维矩阵”;“对象”;从数据列中选择,并将其进一步绘制为等高线图,r,matrix,ggplot2,R,Matrix,Ggplot2,事实上,我已经在创建矩阵的过程中陷入了困境。让我们先从数据开始: Length Diameter Defect Start Defect End Defect Location Defect Angle 1 9850 100 975 987 986 0 2 9850 100 1937 1949 709 0 3

事实上,我已经在创建矩阵的过程中陷入了困境。让我们先从数据开始:

   Length Diameter Defect Start Defect End Defect Location Defect Angle
1   9850      100          975        987             986            0
2   9850      100         1937       1949             709            0
3   9850      100         4775       4787             604            0
4   9850      100         5775       5787              15            0
5   9850      100         6062       6087              44           -3
6   9850      100         6325       6337             385            0
7   9850      100         6650       6675             588            0
以下是输入:

structure(list(Length = c(9850, 9850, 9850, 9850, 9850, 9850, 
9850), Diameter = c(100, 100, 100, 100, 100, 100, 100), `Defect Start` = c(975, 
1937, 4775, 5775, 6062, 6325, 6650), `Defect End` = c(987, 1949, 
4787, 5787, 6087, 6337, 6675), `Defect Location` = c(986, 709, 
604, 15, 44, 385, 588), `Defect Angle` = c(0, 0, 0, 0, -3, 0, 
0)), class = "data.frame", row.names = c(NA, -7L))
数据的图形说明如下(快速喷漆解决方案)

目标

目标是使用例如等高线图(x轴长度、y轴直径等)创建2d或3d图,以显示缺陷的位置(缺陷通常是一卷中的简单线条,其长度和宽度分别为开始和结束和结束

我一直在准备矩阵,实际上我不知道是否有可能在R中完成,但我想这将是一个伟大而有趣的方法来检查

如果您有任何建议,我将不胜感激!

这里有一个想法

将每个管道绘制为二维矩形,在其上显示缺陷

待完成:
-找出
缺陷位置
的含义
-需要角度吗

library(tidyverse)

df <- mydata %>%
  #give the pipe an id
  mutate( id = 1 ) %>%
  group_by( id ) %>%
  #give each defect (by pipe) an id
  mutate( defect_id = row_number() ) %>%
  #not sure what to do woith defect location.... 
  #to get it inside the pipe, i divide by 10... needs looking into!!
  mutate( `Defect Location` = `Defect Location` / 10 ) %>%
  gather("defect", "x", -Length, -Diameter, -`Defect Angle`, -id, -defect_id, -`Defect Location`)


ggplot( data = df ) + 
  #draw pipe as a 2D rectangle, height = pi * Diameter
  geom_rect( aes( xmin = 0, xmax = Length, ymin = 0, ymax = pi * Diameter ), alpha = 0.1 ) +
  #draw start-endpoint and lines with defects
  geom_point( aes( x = x, y = `Defect Location`, group = as.character(defect_id) ), color = "red", size = 2 ) +
  geom_line( aes( x = x, y = `Defect Location`, group = as.character(defect_id), colour = as.character(defect_id) ), color = "red", size = 2 ) +
  #draw each pipe
  facet_wrap( ~id, ncol = 1 )
库(tidyverse)
df%
#给管道一个id
突变(id=1)%>%
分组依据(id)%>%
#给每个缺陷(通过管道)一个id
突变(缺陷id=行号())%>%
#不确定如何处理缺陷位置。。。。
#为了让它进入管道,我除以10…需要考虑!!
突变(`Defect Location`=`Defect Location`/10)%>%
聚集(“缺陷”、“x”、-长度、-直径、`defect Angle`、-id、-defect\U id、`defect Location`)
ggplot(数据=df)+
#将管道绘制为二维矩形,高度=π*直径
几何误差(aes(xmin=0,xmax=长度,ymin=0,ymax=pi*直径),alpha=0.1)+
#绘制有缺陷的起点和终点线
几何点(aes(x=x,y=`缺陷位置',组=as.character(缺陷id)),color=“red”,size=2)+
几何图形线(aes(x=x,y=`缺陷位置',组=as.character(缺陷id),颜色=as.character(缺陷id)),颜色=red,大小=2)+
#画每根管子
面_包裹(~id,ncol=1)

如果直径=100,缺陷位置怎么可能>100*pi?您的大棚中的1240是从哪里来的?这正是我一直在问自己的问题!这是来自测量缺陷的机器的数据,由工人设置成这样,甚至没有任何意义…这看起来已经很好了!而不是Points行会更好(显示缺陷的长度)缺陷相对于总x非常短…因此输出中的行不会有太大变化(在本例中)@malu_a行添加到更新的答案中…图像不会改变,但尝试使用不同的样本数据并观察行的出现:)非常感谢您的帮助!