5 min read min read
Interactive Bar Charts
Learn to create interactive bar charts with Plotly
Interactive Bar Charts
Basic Bar Chart
code.pyPython
import plotly.express as px
import pandas as pd
df = pd.DataFrame({
'Product': ['A', 'B', 'C', 'D'],
'Sales': [100, 150, 80, 120]
})
fig = px.bar(df, x='Product', y='Sales', title='Sales by Product')
fig.show()Horizontal Bar Chart
code.pyPython
fig = px.bar(df, x='Sales', y='Product', orientation='h')
fig.show()Color by Category
code.pyPython
df['Region'] = ['East', 'West', 'East', 'West']
fig = px.bar(df, x='Product', y='Sales', color='Region')
fig.show()Grouped Bar Chart
code.pyPython
df = pd.DataFrame({
'Product': ['A', 'B', 'C', 'A', 'B', 'C'],
'Sales': [100, 150, 80, 120, 140, 90],
'Year': ['2023', '2023', '2023', '2024', '2024', '2024']
})
fig = px.bar(df, x='Product', y='Sales', color='Year', barmode='group')
fig.show()Stacked Bar Chart
code.pyPython
fig = px.bar(df, x='Product', y='Sales', color='Year', barmode='stack')
fig.show()Add Text on Bars
code.pyPython
fig = px.bar(df, x='Product', y='Sales', text='Sales')
fig.show()Custom Text Position
code.pyPython
fig = px.bar(df, x='Product', y='Sales', text='Sales')
fig.update_traces(textposition='outside')
fig.show()Positions: 'inside', 'outside', 'auto', 'none'
Sort Bars
code.pyPython
# Sort by value
df_sorted = df.sort_values('Sales', ascending=False)
fig = px.bar(df_sorted, x='Product', y='Sales')
fig.show()Custom Colors
code.pyPython
fig = px.bar(df, x='Product', y='Sales',
color='Product',
color_discrete_sequence=['red', 'blue', 'green', 'orange'])
fig.show()Percentage Bar Chart
code.pyPython
fig = px.bar(df, x='Product', y='Sales', color='Year',
barmode='stack', barnorm='percent')
fig.show()Shows percentages instead of values!
Faceted Bar Charts
code.pyPython
df['Region'] = ['East', 'East', 'West', 'West', 'East', 'West']
fig = px.bar(df, x='Product', y='Sales', color='Year',
facet_col='Region', barmode='group')
fig.show()Complete Example
code.pyPython
import plotly.express as px
import pandas as pd
df = pd.DataFrame({
'Department': ['Sales', 'IT', 'HR', 'Marketing'],
'Q1': [100, 80, 50, 70],
'Q2': [120, 85, 55, 80],
'Q3': [115, 90, 60, 75],
'Q4': [140, 95, 65, 90]
})
# Reshape for Plotly
df_long = df.melt(id_vars='Department', var_name='Quarter', value_name='Revenue')
fig = px.bar(df_long, x='Department', y='Revenue',
color='Quarter', barmode='group',
title='Quarterly Revenue by Department',
text='Revenue')
fig.update_traces(textposition='outside')
fig.show()Key Points
- px.bar() for bar charts
- orientation='h' for horizontal
- barmode='group' side by side
- barmode='stack' stacked
- text shows values on bars
- barnorm='percent' for percentages
- Use melt() to reshape data
What's Next?
Learn to create 3D visualizations with Plotly.