Plotly Presentation Demo

Rohit Deshpande

November 30, 2025

data("mtcars")

mtcars_prepped <- mtcars %>%
tibble::rownames_to_column("car") %>%
mutate(
cyl = factor(cyl),
gear = factor(gear)
)

head(mtcars_prepped)
##                 car  mpg cyl disp  hp drat    wt  qsec vs am gear carb
## 1         Mazda RX4 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## 2     Mazda RX4 Wag 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## 3        Datsun 710 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## 4    Hornet 4 Drive 21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## 5 Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## 6           Valiant 18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
plot_ly(
data = mtcars_prepped,
x = ~hp,
y = ~mpg,
type = "scatter",
mode = "markers",
color = ~cyl,
size = ~wt,
text = ~paste("Car:", car,
"<br>Cylinders:", cyl,
"<br>Gears:", gear,
"<br>HP:", hp,
"<br>MPG:", mpg),
hoverinfo = "text"
) %>%
layout(
title = "Horsepower vs. MPG (mtcars)",
xaxis = list(title = "Horsepower"),
yaxis = list(title = "Miles per Gallon"),
legend = list(title = list(text = "Cylinders"))
)