Step 1: Set Up the Basic Plot
We’ll start by creating a simple scatter plot that we’ll customize
throughout this tutorial.
1. Create a Sample Dataset:
# Sample datax <- c(1, 2, 3, 4, 5)y <- c(10, 15, 13, 17, 20)labels <- c("A", "B", "C", "D", "E")
2. Generate the Basic Scatter Plot:
library(plotly) # Basic scatter plotplot <- plot_ly(x = ~x, y = ~y, type = 'scatter', mode = 'markers')plot
Step 2: Add Labels
You can add custom labels for each point to provide additional context.
1. Add Labels as Text:
plot <- plot_ly(x = ~x, y = ~y, text = ~labels, type = 'scatter', mode = 'markers+text') %>% layout(title = "Scatter Plot with Labels", xaxis = list(title = "X Axis"), yaxis = list(title = "Y Axis"))plot
- Explanation:
text = ~labels: Adds text labels from thelabelsvariable.mode = 'markers+text': Displays both markers and text.
2. Adjust Text Position:
plot <- plot %>% layout(title = "Scatter Plot with Custom Label Positions") %>% style(textposition = 'top right') # Try 'top left', 'bottom right', etc.plot
Step 3: Add and Customize Hover Effects
Hover effects can be customized to display more detailed information.
1. Customize Hover Text:
plot <- plot_ly(x = ~x, y = ~y, text = ~paste("Point:", labels, "<br>X:", x, "<br>Y:", y), hoverinfo = 'text', type = 'scatter', mode = 'markers') %>% layout(title = "Scatter Plot with Customized Hover Text")plot
- Explanation:
hoverinfo = 'text': Specifies that hover text should come from thetextargument.paste()function with<br>: Adds HTML line breaks to format the hover text neatly.
Step 4: Adjust Colors
Colors can make plots visually appealing and help convey information.
1. Change Marker Colors:
plot <- plot_ly(x = ~x, y = ~y, text = ~labels, type = 'scatter', mode = 'markers', marker = list(color = 'blue', size = 10)) %>% layout(title = "Scatter Plot with Custom Marker Color")plot2. Add Conditional Colors:
# Set colors based on y valuescolors <- c("red", "green", "blue", "orange", "purple") plot <- plot_ly(x = ~x, y = ~y, text = ~labels, type = 'scatter', mode = 'markers', marker = list(color = colors, size = 10)) %>% layout(title = "Scatter Plot with Conditional Colors")plot
3. Use a Color Gradient:
plot <- plot_ly(x = ~x, y = ~y, text = ~labels, type = 'scatter', mode = 'markers', marker = list(color = ~y, colorscale = 'Viridis', size = 10)) %>% layout(title = "Scatter Plot with Gradient Colors")plot
Step 5: Customize Layout
plotly offers extensive
layout options to adjust axes, titles, legends, and background.
1. Modify Title and Axis Titles:
plot <- plot %>% layout(title = list(text = "Customized Scatter Plot", font = list(size = 20, color = "darkblue")), xaxis = list(title = "Custom X Axis", titlefont = list(size = 15, color = "darkred")), yaxis = list(title = "Custom Y Axis", titlefont = list(size = 15, color = "darkgreen")))plot
2. Customize Legend:
# Adding a legend and customizing its position and appearanceplot <- plot %>% layout(showlegend = TRUE, legend = list(x = 1, y = 1, font = list(size = 10, color = "black")))plot
3. Change Background Color:
plot <- plot %>% layout(plot_bgcolor = 'lightgrey', # Background color of the plot area paper_bgcolor = 'lavender') # Background color of the paperplotStep 6: Combine All Customizations
Let’s put together everything we learned to create a fully customized scatter plot.
plot <- plot_ly(x = ~x, y = ~y, text = ~paste("Label:", labels, "<br>X:", x, "<br>Y:", y), hoverinfo = 'text', type = 'scatter', mode = 'markers+text', marker = list(color = ~y, colorscale = 'Viridis', size = 15)) %>% layout(title = list(text = "Fully Customized Scatter Plot", font = list(size = 22, color = "darkblue")), xaxis = list(title = "Custom X Axis", titlefont = list(size = 15, color = "darkred")), yaxis = list(title = "Custom Y Axis", titlefont = list(size = 15, color = "darkgreen")), plot_bgcolor = 'lightgrey', paper_bgcolor = 'lavender', legend = list(x = 1, y = 1, font = list(size = 10, color = "black"))) plot
Summary
Today, you:
- Added text
labels and customized their position.
- Created
hover text with detailed information and used HTML for formatting.
- Customized
colors, including conditional colors and gradients.
- Modified
layout elements such as titles, axis labels, background color, and legend
position.
Next, you’ll practice 3D plotting and explore deeper interactions to make
your plots even more dynamic.













.jpg)


