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 data
x
<-
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 plot
plot
<- 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 thelabels
variable.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 thetext
argument.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")
plot
2. Add Conditional Colors:
# Set colors based on y values
colors
<-
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 appearance
plot
<- 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 paper
plot
Step 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.
No comments:
Post a Comment