#1 Data Analytics Program in India
₹2,499₹1,499Enroll Now
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.

SkillsetMaster - AI, Web Development & Data Analytics Courses