5 min read min read
Interactive Line Charts
Learn to create interactive line charts with Plotly
Interactive Line Charts
Basic Line Chart
code.py
import plotly.express as px
import pandas as pd
df = pd.DataFrame({
'Month': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'],
'Sales': [100, 120, 115, 140, 160, 180]
})
fig = px.line(df, x='Month', y='Sales', title='Monthly Sales')
fig.show()Add Markers
code.py
fig = px.line(df, x='Month', y='Sales', markers=True)
fig.show()Multiple Lines
code.py
df = pd.DataFrame({
'Month': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'],
'Product_A': [100, 120, 115, 140, 160, 180],
'Product_B': [80, 95, 100, 110, 130, 150]
})
# Reshape for Plotly
df_long = df.melt(id_vars='Month', var_name='Product', value_name='Sales')
fig = px.line(df_long, x='Month', y='Sales', color='Product', markers=True)
fig.show()Line with Color Groups
code.py
df = pd.DataFrame({
'Month': ['Jan', 'Feb', 'Mar']*2,
'Sales': [100, 120, 115, 80, 95, 100],
'Region': ['East', 'East', 'East', 'West', 'West', 'West']
})
fig = px.line(df, x='Month', y='Sales', color='Region', markers=True)
fig.show()Area Chart
Fill under the line:
code.py
fig = px.area(df, x='Month', y='Sales', title='Sales Area Chart')
fig.show()Stacked Area
code.py
fig = px.area(df_long, x='Month', y='Sales', color='Product')
fig.show()Custom Line Style
code.py
fig = px.line(df, x='Month', y='Sales')
# Make line thicker and dashed
fig.update_traces(line=dict(width=3, dash='dash'))
fig.show()Dash options: 'solid', 'dot', 'dash', 'longdash', 'dashdot'
Add Range Slider
code.py
fig = px.line(df, x='Month', y='Sales')
fig.update_xaxes(rangeslider_visible=True)
fig.show()Adds a slider to zoom in on time periods!
Fill Between Lines
code.py
import plotly.graph_objects as go
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May']
high = [120, 130, 125, 145, 160]
low = [80, 90, 85, 105, 120]
fig = go.Figure()
fig.add_trace(go.Scatter(x=months, y=high, name='High', line=dict(color='green')))
fig.add_trace(go.Scatter(x=months, y=low, name='Low', fill='tonexty', line=dict(color='red')))
fig.show()Complete Example
code.py
import plotly.express as px
import pandas as pd
# Stock-like data
df = pd.DataFrame({
'Date': pd.date_range('2024-01-01', periods=30),
'Stock_A': [100 + i + (i % 5) for i in range(30)],
'Stock_B': [80 + i*0.8 + (i % 3) for i in range(30)]
})
df_long = df.melt(id_vars='Date', var_name='Stock', value_name='Price')
fig = px.line(df_long, x='Date', y='Price', color='Stock',
title='Stock Price Comparison',
markers=True)
fig.update_xaxes(rangeslider_visible=True)
fig.show()Key Points
- px.line() for line charts
- markers=True shows data points
- color creates multiple lines
- px.area() fills under line
- rangeslider_visible adds zoom slider
- Use melt() to reshape data for multiple lines
What's Next?
Learn to create interactive bar charts.