Orange
# Carregando bibliotecas e dataset
library(plotly)
library(dplyr)
data("Orange")
# Visualizando os dados
print(head(Orange, 10))
## Tree age circumference
## 1 1 118 30
## 2 1 484 58
## 3 1 664 87
## 4 1 1004 115
## 5 1 1231 120
## 6 1 1372 142
## 7 1 1582 145
## 8 2 118 33
## 9 2 484 69
## 10 2 664 111
# Definindo cores para cada árvore
cores <- c(
"1" = "#E63946",
"2" = "#2A9D8F",
"3" = "#E9C46A",
"4" = "#457B9D",
"5" = "#9B5DE5"
)
fig <- plot_ly()
# Adicionando uma linha para cada árvore
for (arvore in unique(Orange$Tree)) {
# Filtrando dados
dados_arvore <- Orange %>%
filter(Tree == arvore)
# Criando tooltip
tooltip <- paste0(
"Árvore ", arvore,
" — idade: ", dados_arvore$age, " dias",
" — circ.: ", dados_arvore$circumference, " mm"
)
# Adicionando linha ao gráfico
fig <- fig %>%
add_trace(
data = dados_arvore,
x = ~age,
y = ~circumference,
type = "scatter",
mode = "lines+markers",
name = paste0("Árvore ", arvore),
text = tooltip,
hoverinfo = "text",
line = list(
color = cores[as.character(arvore)],
width = 2.5
),
marker = list(
color = cores[as.character(arvore)],
size = 8,
symbol = "circle"
)
)
}
# Layout
fig <- fig %>%
layout(
title = list(
text = "<b>Crescimento das Laranjeiras ao Longo do Tempo</b>",
font = list(size = 18)
),
xaxis = list(
title = "Idade (dias)",
tickfont = list(size = 12),
gridcolor = "#e0e0e0",
showgrid = TRUE
),
yaxis = list(
title = "Circunferência (mm)",
tickfont = list(size = 12),
gridcolor = "#e0e0e0",
showgrid = TRUE
),
legend = list(
title = list(text = "<b>Laranjeiras</b>"),
orientation = "v",
x = 0.02,
y = 0.98,
bgcolor = "rgba(255,255,255,0.8)",
bordercolor = "#cccccc",
borderwidth = 1
),
plot_bgcolor = "#f9f9f9",
paper_bgcolor = "#ffffff",
hovermode = "closest"
)
fig