Embark on a journey of knowledge! Take the quiz and earn valuable credits.
Take A QuizChallenge yourself and boost your learning! Start the quiz now to earn credits.
Take A QuizUnlock your potential! Begin the quiz, answer questions, and accumulate credits along the way.
Take A Quiz
🔹 1. Introduction
In this chapter, we will explore advanced plotting
techniques in Plotly, enabling you to create more complex, dynamic, and
insightful visualizations. Plotly’s capabilities extend beyond basic charts to
more advanced options, such as multi-trace plots, 3D plots, subplots,
and customized layouts. These techniques allow you to display data in a
way that is not only visually appealing but also highly interactive.
Whether you’re comparing multiple datasets, visualizing
three-dimensional data, or fine-tuning your plot layout, this chapter will help
you expand your Plotly skills. You'll learn how to:
🔹 2. Creating Multi-Trace
Plots
One of the most powerful features of Plotly is the ability
to combine multiple traces (or data series) into a single plot. This allows you
to compare different datasets or variables on the same graph, which is
especially useful in data analysis.
✅ Example: Multiple Line Charts
You can overlay multiple line charts on a single
figure to compare different trends. Here’s how to plot two lines representing
sales and profit over time:
import
plotly.graph_objects as go
import
pandas as pd
#
Sample data
data
= {'Month': ['Jan', 'Feb', 'Mar', 'Apr', 'May'],
'Sales': [100, 120, 150, 170, 200],
'Profit': [50, 60, 80, 90, 120]}
df
= pd.DataFrame(data)
#
Create a figure with two line traces
fig
= go.Figure()
#
Add the Sales line trace
fig.add_trace(go.Scatter(x=df['Month'],
y=df['Sales'], mode='lines', name='Sales'))
#
Add the Profit line trace
fig.add_trace(go.Scatter(x=df['Month'],
y=df['Profit'], mode='lines', name='Profit'))
#
Update layout
fig.update_layout(title='Sales
and Profit Over Time', xaxis_title='Month', yaxis_title='Value')
#
Show the plot
fig.show()
✅ Example: Multiple Bar Charts
Similarly, you can combine multiple bar charts:
fig
= go.Figure()
#
Add the Sales bar trace
fig.add_trace(go.Bar(x=df['Month'],
y=df['Sales'], name='Sales'))
#
Add the Profit bar trace
fig.add_trace(go.Bar(x=df['Month'],
y=df['Profit'], name='Profit'))
#
Update layout
fig.update_layout(title='Sales
and Profit Comparison', barmode='group')
#
Show the plot
fig.show()
This code creates a grouped bar chart with Sales
and Profit represented side-by-side for each month.
🔹 3. Creating 3D Plots
Plotly excels in handling 3D plots, which are
essential for visualizing data with three variables. You can create 3D scatter
plots, surface plots, and mesh plots.
✅ Example: 3D Scatter Plot
In a 3D scatter plot, each point is represented in
three-dimensional space.
import
plotly.graph_objects as go
#
Sample 3D data
data
= {
'X': [1, 2, 3, 4, 5],
'Y': [10, 11, 12, 13, 14],
'Z': [100, 200, 300, 400, 500]
}
fig
= go.Figure(data=[go.Scatter3d(
x=data['X'], y=data['Y'], z=data['Z'],
mode='markers', marker=dict(size=12,
color='blue', opacity=0.8)
)])
#
Update layout
fig.update_layout(title='3D
Scatter Plot', scene=dict(xaxis_title='X', yaxis_title='Y', zaxis_title='Z'))
#
Show the plot
fig.show()
This creates a 3D scatter plot where each point is
positioned based on its X, Y, and Z coordinates.
✅ Example: 3D Surface Plot
You can also create a 3D surface plot for visualizing
continuous data across a grid:
import
numpy as np
#
Create meshgrid for X and Y
x
= np.linspace(-5, 5, 100)
y
= np.linspace(-5, 5, 100)
x,
y = np.meshgrid(x, y)
#
Calculate Z values based on X, Y grid
z
= np.sin(np.sqrt(x**2 + y**2))
fig
= go.Figure(data=[go.Surface(z=z, x=x, y=y)])
#
Update layout
fig.update_layout(title='3D
Surface Plot', scene=dict(xaxis_title='X', yaxis_title='Y', zaxis_title='Z'))
#
Show the plot
fig.show()
This generates a 3D surface plot that shows the
values of Z based on the X and Y grid.
🔹 4. Using Subplots
Plotly allows you to create subplots—multiple charts
in one figure that share a common axis or are independent. This is useful when
comparing different datasets in a structured way.
✅ Example: Creating Subplots
You can create subplots with subplot titles, different
chart types, and shared axes.
from
plotly.subplots import make_subplots
import
plotly.graph_objects as go
#
Create a subplot grid
fig
= make_subplots(rows=1, cols=2)
#
Add a line plot to the first subplot
fig.add_trace(go.Scatter(x=df['Month'],
y=df['Sales'], mode='lines', name='Sales'), row=1, col=1)
#
Add a bar plot to the second subplot
fig.add_trace(go.Bar(x=df['Month'],
y=df['Profit'], name='Profit'), row=1, col=2)
#
Update layout
fig.update_layout(title='Sales
and Profit Comparison', showlegend=False)
#
Show the plot
fig.show()
This creates a single row of two subplots: one with a
line chart and another with a bar chart.
🔹 5. Customizing Layouts
The layout of a plot controls its visual appearance,
including axis labels, legends, and titles. Plotly provides extensive options
for customizing these elements.
✅ Example: Custom Layout with
Multiple Elements
fig
= go.Figure()
#
Add a line plot
fig.add_trace(go.Scatter(x=df['Month'],
y=df['Sales'], mode='lines', name='Sales'))
#
Update layout with customizations
fig.update_layout(
title='Sales Trend Over Time',
xaxis=dict(title='Month', showgrid=True),
yaxis=dict(title='Sales', showgrid=True),
plot_bgcolor='lightgray',
font=dict(family='Arial, sans-serif',
size=14, color='black')
)
#
Show the plot
fig.show()
In this example, we customize the background color, axis
labels, and font properties of the plot.
🔹 6. Summary Table
Operation |
Function/Method |
Description |
Create
Multiple Traces |
add_trace() |
Add multiple
datasets or plot types to a single figure |
Create 3D
Scatter Plot |
go.Scatter3d() |
Plot data in
3D space with X, Y, and Z axes |
Create 3D
Surface Plot |
go.Surface() |
Visualize continuous
data as a 3D surface |
Create
Subplots |
make_subplots() |
Combine
multiple charts into a single figure |
Customize
Layout |
update_layout() |
Customize
titles, labels, gridlines, and background color |
Plotly is a powerful library for creating interactive, web-based data visualizations. It supports a wide range of chart types, including line charts, scatter plots, bar charts, and 3D charts.
You can install Plotly via pip: pip install plotly.
You can create a variety of interactive plots such as scatter plots, line charts, bar charts, pie charts, heatmaps, 3D plots, and more.
Use plotly.express.line() to create a line chart. You can pass in your data and specify the x and y axes.
Yes! Plotly provides a wide range of customization options such as color schemes, titles, legends, axis labels, and much more.
Plotly charts are interactive by default. You can zoom, pan, and hover over data points to view additional information.
Yes, you can save Plotly plots as static images in formats like PNG, JPEG, or SVG using the write_image() function.
Dash is a Python framework for building web applications that can display interactive Plotly charts. It allows you to create data dashboards with Plotly visualizations.
Plotly supports creating 3D plots like scatter plots and surface plots using the plotly.graph_objects module.
Yes! Plotly integrates seamlessly with Jupyter Notebooks. You can display interactive plots directly in the notebook using fig.show().
Please log in to access this content. You will be redirected to the login page shortly.
LoginReady to take your education and career to the next level? Register today and join our growing community of learners and professionals.
Comments(1)