library(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")
Dados <- read.table("A8.txt", header = TRUE)
Dados
##      Amostra   X   Y    Z      A     B     C Esfericidade
## 1     FQA8-2  54 179 -157  80.26 28.55 21.32         0.46
## 2     FQA8-8 133  38 -147  34.87 26.04  8.72         0.57
## 3     FQA8-5  55 154 -152  81.54 60.35 37.28         0.70
## 4   FQA8-1-1 111  60 -144 100.14 34.63 21.23         0.42
## 5   FQA8-1-2 118  66 -144  62.70 22.83 16.73         0.46
## 6   FQA8-1-3 113  63 -144  47.12 22.25 12.57         0.50
## 7   FQA8-1-4 119  60 -144  78.70 68.63 51.91         0.83
## 8  FQA8-1-10 124  61 -147  44.57 16.03  6.43         0.38
## 9   FQA8-2-1  58 177 -163  48.51 16.96 16.30         0.49
## 10  FQA8-2-2  59 176 -163  47.70 17.24  9.79         0.42
## 11  FQA8-2-3  65 180 -163  41.54 12.94 11.21         0.44
## 12  FQA8-2-4  61 178 -163  27.12 18.70 10.31         0.64
## 13  FQA8-3-1  98  91 -145  51.71 26.05 20.90         0.59
## 14  FQA8-3-2 101  85 -144  73.91 43.76 25.80         0.59
## 15  FQA8-3-3 100  92 -144  44.69 33.69 18.58         0.68
## 16  FQA8-3-4 109  77 -145  44.33 16.82  9.71         0.44
## 17  FQA8-3-5 105  88 -146  17.00 12.86  8.35         0.72
## 18  FQA8-3-6  94  91 -145  39.55 20.63  8.74         0.49
## 19  FQA8-3-7  98  87 -146  54.57 27.31 19.04         0.56
## 20  FQA8-4-2  88  63 -144  51.31 20.90 11.28         0.45
## 21  FQA8-4-4  89  65 -144  48.39 18.86 12.77         0.47
## 22  FQA8-4-5  85  74 -146  33.61 15.78 11.46         0.55
## 23  FQA8-4-6  92  64 -146  52.42 17.60  5.82         0.34
## 24  FQA8-5-1  60 143 -155  81.52 59.68 44.45         0.74
## 25  FQA8-5-2  50 134 -155  61.63 47.32 29.37         0.72
## 26  FQA8-5-3  55 144 -155  41.29 30.44 15.91         0.66
## 27  FQA8-5-4  64 148 -155  43.50 37.50 20.62         0.74
## 28  FQA8-5-5  69 136 -155 107.23 70.62 60.62         0.72
## 29  FQA8-6-1 168  15 -144  62.22 25.24 15.56         0.47
## 30  FQA8-6-2 158  17 -144  82.29 68.39 25.92         0.64
## 31  FQA8-7-1 138  26 -144  31.01 25.96 15.69         0.75
## 32  FQA8-7-2 145  23 -146  33.27 19.30 13.57         0.62
## 33  FQA8-7-3 144  25 -144  54.43 35.79 28.21         0.70
## 34  FQA8-7-4 143  27 -144  48.53 21.78 13.77         0.51
## 35  FQA8-7-5 145  18 -144  55.88 37.92 30.50         0.72
## 36  FQA8-7-6 147  22 -146  30.29 15.93 12.58         0.61
## 37  FQA8-7-7 145  20 -146  30.36 21.96 19.35         0.77
## 38  FQA8-7-8 138  21 -144  56.44 37.26 21.82         0.64
nome_coluna <- "Esfericidade"
Dados$Valores_Numéricos <- as.numeric(as.character(Dados[[nome_coluna]]))

plot3d <- plot_ly(
  data = Dados, 
  x = ~X, 
  y = ~Y, 
  z = ~Z, 
  text = ~Amostra, 
  type = "scatter3d", 
  mode = "markers",
  marker = list(
    color = ~Esfericidade,   # Define a variável contínua aqui dentro
    colorscale = "Viridis",       # O plotly interpreta corretamente aqui
    size = 7, 
    opacity = 0.8,
    colorbar = list(title = "Esfericidade")
  ),
  hoverinfo = "text+x+y+z"
) %>% 
  layout(
    title = "Posição espacial das amostras na quadra A8", 
    scene = list(
      xaxis = list(title = "X"), 
      yaxis = list(title = "Y"), 
      zaxis = list(title = "Z")
    ), 
    hoverlabel = list(bgcolor = "white", font = list(size = 12))
  )

# Exibir o gráfico
plot3d