if(!require(plotly)) install.packages("plotly")
## Carregando pacotes exigidos: plotly
## Carregando pacotes exigidos: ggplot2
## 
## Anexando pacote: 'plotly'
## O seguinte objeto é mascarado por 'package:ggplot2':
## 
##     last_plot
## O seguinte objeto é mascarado por 'package:stats':
## 
##     filter
## O seguinte objeto é mascarado por 'package:graphics':
## 
##     layout
setwd("C:/R/3D")
Data <- read.table("A12.txt", header = TRUE)
Data
##         Sample   X   Y    Z      A     B     C Sphericity
## 1     FQA12-10 164 178 -145  49.49 36.12 27.94       0.75
## 2     FQA12-11 134 187 -147  43.46 28.15 14.93       0.61
## 3     FQA12-13  89 141 -159  45.12 35.09 21.47       0.72
## 4     FQA12-14 147  15 -142 118.19 45.29 34.19       0.48
## 5     FQA12-16 124  50 -146  97.90 52.11 31.68       0.56
## 6     FQA12-18 132  61 -146  75.14 55.98 38.59       0.73
## 7     FQA12-19 115  70 -146  75.37 72.89 52.18       0.88
## 8     FQA12-20  98  68 -146  76.26 70.72 51.03       0.85
## 9     FQA12-21  93  83 -168 126.03 99.74 51.71       0.69
## 10    FQA12-24 123  15 -146 120.50 75.20 69.71       0.71
## 11   FQA12-9-1 172 128 -160  53.91 51.16 30.26       0.81
## 12   FQA12-9-2 161 122 -160  51.08 25.92 19.13       0.58
## 13   FQA12-9-3 171 122 -160 104.37 52.35 50.61       0.63
## 14  FQA12-12-1 110 139 -157  32.78 30.95 18.51       0.81
## 15  FQA12-12-2 121 140 -157  42.08 33.23 26.96       0.80
## 16  FQA12-12-3 116 129 -157  65.92 37.15 30.94       0.64
## 17  FQA12-17-1 100  10 -146 243.91 59.96 54.52       0.38
## 18  FQA12-17-2 100  10 -151  86.32 41.11 23.95       0.51
## 19  FQA12-17-9 100  16 -151  78.41 35.25 19.24       0.48
## 20 FQA12-17-13 100  14 -151  57.31 54.06 25.86       0.75
## 21 FQA12-17-14 100  10 -151  69.83 28.86 26.89       0.55
## 22 FQA12-17-46 100  12 -151  43.11 38.08 21.05       0.76
## 23 FQA12-17-48 104  10 -150  17.75 16.72  8.93       0.78
## 24  FQA12-22-1  77 130 -168  70.63 53.91 21.10       0.61
## 25  FQA12-22-2  83 126 -171 111.77 91.23 65.86       0.79
## 26  FQA12-22-3  82 109 -170  52.16 47.25 24.61       0.76
## 27  FQA12-22-4  84 116 -170  56.57 51.22 43.14       0.88
## 28  FQA12-22-5  97 140 -168  44.94 25.86 17.97       0.62
## 29  FQA12-22-6 100 145 -170  46.01 20.48 12.78       0.50
## 30  FQA12-22-7 108 151 -170  44.11 22.30 13.75       0.54
## 31  FQA12-22-8  97 153 -170  26.54 19.59 17.34       0.79
## 32  FQA12-22-9 103 153 -170  33.73 21.72 12.11       0.62
## 33 FQA12-22-10 110 147 -170  30.96 12.69 11.30       0.53
## 34 FQA12-22-11 108 144 -170  40.25 24.94 15.41       0.62
## 35 FQA12-22-12  78 116 -170  48.95 36.57 21.58       0.69
## 36 FQA12-22-13 100 150 -170  38.03 24.08 22.76       0.73
## 37 FQA12-22-14 103 140 -170  37.89 29.95 24.60       0.80
## 38 FQA12-22-15  79 112 -170  47.52 46.29 27.47       0.83
## 39 FQA12-22-16 101 152 -170  28.92 21.50 20.44       0.81
## 40 FQA12-22-17 100 134 -168  71.26 53.45 36.84       0.73
## 41 FQA12-22-18 105 147 -170  36.53 15.49 13.36       0.54
## 42 FQA12-22-19 108 134 -168  52.35 26.57 19.44       0.58
## 43 FQA12-22-20 108 136 -168  54.72 23.63 21.60       0.56
## 44  FQA12-23-1  94  38 -148  93.09 61.75 37.03       0.64
## 45  FQA12-23-2  87  38 -149  46.70 22.16 13.34       0.52
## 46  FQA12-23-3  90  36 -149  45.60 24.57 16.42       0.58
## 47  FQA12-23-4  92  47 -148 118.20 58.95 48.30       0.59
## 48   FQ12-24-1 128  11 -149  47.44 27.18 12.79       0.54
## 49   FQ12-24-4 119  11 -149  43.77 32.00 21.18       0.71
## 50   FQ12-24-5 132  13 -150  48.14 34.01 32.46       0.78
## 51   FQ12-24-6 131  14 -150  40.49 21.63 10.32       0.52
## 52   FQ12-24-7 122  20 -150  41.91 21.63 14.26       0.56
## 53   FQ12-24-8 132  27 -148  56.87 20.08 10.76       0.41
## 54   FQ12-24-9 123  15 -151  23.95 22.77  9.81       0.73
## 55  FQ12-24-10 112  20 -147  62.02 47.47 36.16       0.77
## 56  FQ12-24-11 121  15 -150  35.10 20.04 11.95       0.58
## 57   FQ12-25-1  99  93 -170  54.85 44.58 22.15       0.69
## 58   FQ12-25-2  90  95 -171  51.52 40.21 11.50       0.56
## 59   FQ12-25-3 100  98 -170  43.92 29.71 17.10       0.64
## 60   FQ12-25-4 100  94 -170  33.22 25.04 14.37       0.69
## 61   FQ12-25-5  95 100 -168 112.52 96.15 51.20       0.73
## 62   FQ12-26-1 148 144 -168  46.47 25.36 23.22       0.65
## 63   FQ12-26-2 153 150 -168  38.82 34.36 19.55       0.77
## 64   FQ12-26-3 149 163 -168  45.42 26.47 12.04       0.54
## 65   FQ12-26-4 140 151 -168  42.33 22.21 20.81       0.64
## 66   FQ12-26-5 145 166 -168  42.54 23.12 21.44       0.65
## 67   FQ12-26-7 140 141 -168  39.96 26.51 18.48       0.68
## 68   FQ12-26-8 158 164 -168  34.36 19.48 13.53       0.61
## 69   FQ12-26-9 141 157 -168  41.98 25.40 20.12       0.66
## 70  FQ12-26-10 156 156 -168  42.15 17.65 13.93       0.52
## 71  FQ12-26-11 150 166 -168  38.66 26.18 15.23       0.65
## 72  FQ12-26-12 154 157 -168  40.44 17.62  9.34       0.47
## 73  FQ12-26-13 161 155 -168  26.55 25.80  9.06       0.69
## 74  FQ12-26-14 148 133 -168  30.99 16.69  8.30       0.53
## 75  FQ12-26-16 148 156 -168  31.74 19.66 17.25       0.70
name_column <- "Sphericity"
Data$Valores_Numéricos <- as.numeric(as.character(Data[[name_column]]))


plot3d <- plot_ly(
  data = Data, 
  x = ~X, 
  y = ~Y, 
  z = ~Z, 
  text = ~Sample, 
  type = "scatter3d", 
  mode = "markers",
  marker = list(
    color = ~Sphericity,   
    colorscale = "Viridis",       
    size = 7, 
    opacity = 0.8,
    colorbar = list(title = "Sphericity")
  ),
  hoverinfo = "text+x+y+z"
) %>% 
  layout(
    title = "Spatial position of the samples within the excavation unit A12", 
    scene = list(
      xaxis = list(title = "X"), 
      yaxis = list(title = "Y"), 
      zaxis = list(title = "Z")
    ), 
    hoverlabel = list(bgcolor = "white", font = list(size = 12))
  )

plot3d