14. Visuals and Their Formatting
14.4 Bar and Column Charts (Stacked, Clustered, 100% Stacked)
Start with a problem
Raja wants to see each city's sales split by platform – Blinkit vs Amazon Now – and then compare the platform mix between cities.
Explain simply
Clustered bars put platforms side by side (compare values). Stacked bars put them on top of each other (see the total and the parts). 100% stacked bars show each part as a percentage of its bar (compare the mix, not the size).
Show the data
| City | Blinkit (₹) | Amazon Now (₹) | Total (₹) |
|---|---|---|---|
| Pune | 650 | 200 | 850 |
| Nashik | 450 | 350 | 800 |
| Kolhapur | 0 | 450 | 450 |
| Total | 1,100 | 1,000 | 2,100 |
About this data: This table uses columns: City, Blinkit (₹), Amazon Now (₹), Total (₹). This table uses columns: City, Stacked total (₹), Blinkit share (100% stacked). This table uses columns: City, Blinkit (₹), Amazon Now (₹). This table uses columns: Chart, Pune shows, Best question. Values shown are the lesson examples already on this page (not a new dataset).
Fictional sample data. Practice file: visuals_orders_apr_may_2026.csv (source: src/practice/).
Demonstrate
- Insert a Clustered bar chart: Y-axis
City, X-axisTotal Sales, LegendPlatform. - Read the six bars: Pune Blinkit 650, Pune Amazon Now 200, and so on.
- With the visual selected, click Stacked bar chart in the Visualizations pane. Why: see each city's total length.
- Click 100% stacked bar chart. Why: compare the Blinkit share per city.
- Format › Visual › Data labels › On, to show the values on each segment.
Show the result
Your result should look like this (fictional sample):
| City | Stacked total (₹) | Blinkit share (100% stacked) |
|---|---|---|
| Pune | 850 | 76.5% (650 ÷ 850) |
| Nashik | 800 | 56.3% (450 ÷ 800) |
| Kolhapur | 450 | 0% (0 ÷ 450) |
Explain what happened
The legend splits each city into one segment per platform. In the 100% version, Power BI divides each segment by its own bar total, so every bar reaches 100% and the sizes of the cities no longer matter.
Explore further
- Sort bars by Total Sales via the visual's More options (…) › Sort axis.
- Kolhapur's Blinkit segment is ₹0 because order 308 was cancelled – a zero is still a row.
Detailed reference for this lesson:
Clustered vs stacked column chart in Power BI with example — in 30 seconds
What: A clustered column chart puts bars side by side. A stacked column chart puts them on top of each other.
Why: Clustered is best to compare Blinkit and Amazon Now in each city. Stacked is best to see the city total.
Tiny example: Pune: Blinkit ₹700 and Amazon Now ₹300. Clustered shows two bars. Stacked shows one bar of ₹1,000.
Clustered vs stacked column chart in Power BI with example — 30 सेकंदात
काय: Clustered column chart bars एकमेकांशेजारी ठेवतो. Stacked column chart ते एकमेकांवर रचतो.
का: प्रत्येक शहरात Blinkit आणि Amazon Now ची तुलना करायला clustered best. शहराचा total बघायला stacked best.
छोटं उदाहरण: Pune: Blinkit ₹700 आणि Amazon Now ₹300. Clustered दोन bars दाखवतो. Stacked ₹1,000 चा एक bar दाखवतो.
Clustered vs stacked column chart in Power BI with example — 30 सेकंड में
क्या: Clustered column chart bars को साथ-साथ रखता है. Stacked column chart उन्हें एक के ऊपर एक रखता है.
क्यों: हर शहर में Blinkit और Amazon Now की तुलना के लिए clustered best है. शहर का total देखने के लिए stacked best है.
छोटा उदाहरण: Pune: Blinkit ₹700 और Amazon Now ₹300. Clustered दो bars दिखाता है. Stacked ₹1,000 का एक bar दिखाता है.
First look at the data (before → after):
Same before / after tables as text
Before — Sales by city and platform (fictional)
| City | Blinkit (₹) | Amazon Now (₹) |
|---|---|---|
| Pune | 700 | 300 |
| Mumbai | 600 | 500 |
| Nashik | 300 | 0 |
Formula / click path
Clustered column chart: X-axis = City · Y-axis = Total Sales · Legend = Platform
Same fields, switch to Stacked or 100% stacked column
After — What each chart answers
| Chart | Pune shows | Best question |
|---|---|---|
| Clustered column | Two bars: 700 and 300 | Which platform wins in each city? |
| Stacked column | One bar: 1,000 (700 + 300) | Which city sells the most in total? |
| 100% stacked column | 70% and 30% | What share does each platform have? |
Do it step by step:
- Click an empty part of the canvas.
- In Visualizations, click Clustered column chart.
- Drag DarkStore[City] to X-axis.
- Drag [Total Sales] to Y-axis.
- Drag Orders[Platform] to Legend.
- With the visual selected, click the Stacked column chart icon. Compare the two.
एक-एक step करून बघा:
- Canvas च्या रिकाम्या भागावर click करा.
- Visualizations मध्ये Clustered column chart वर click करा.
- DarkStore[City] ओढून X-axis वर टाका.
- [Total Sales] ओढून Y-axis वर टाका.
- Orders[Platform] ओढून Legend वर टाका.
- Visual निवडलेला असताना Stacked column chart icon वर click करा. दोघांची तुलना करा.
एक-एक step करके देखिए:
- Canvas के ख़ाली हिस्से पर click कीजिए.
- Visualizations में Clustered column chart पर click कीजिए.
- DarkStore[City] को खींचकर X-axis पर डालिए.
- [Total Sales] को खींचकर Y-axis पर डालिए.
- Orders[Platform] को खींचकर Legend पर डालिए.
- Visual चुना हुआ रखते हुए Stacked column chart icon पर click कीजिए. दोनों की तुलना कीजिए.
What you should see on screen after the steps (sample layout — fictional data, not a Microsoft screenshot).
| Visual | Use for | Avoid when |
|---|---|---|
| Clustered bar (horizontal) | Comparing categories, long labels, rankings | Time series (use column/line) |
| Clustered column (vertical) | Comparing few categories, short time periods (months) | More than ~12 categories with long names |
| Stacked bar/column | Total and composition | Comparing inner segments precisely (no common baseline) |
| 100% stacked bar/column | Share of composition across categories | Absolute size matters |
Field wells: Y-axis (category for bars) / X-axis (category for columns), the value axis, Legend (series split), Small multiples, Tooltips.
Examples on our data:
- Clustered bar: Y-axis = City, X-axis = Total Orders, sorted descending.
- Clustered column: X-axis = Month Name, Y-axis = Total Sales, Legend = Platform (Blinkit vs Amazon Now side by side).
- Stacked column: X-axis = City, Y-axis = Total Orders, Legend = Payment Mode.
- 100% stacked bar: Y-axis = City, X-axis = Total Orders, Legend = Delivery Speed Band. This shows the share of fast deliveries per city.
Key formatting (Visual tab): Y-axis/X-axis (type Categorical/Continuous, range min/max, font, title, Concatenate labels for hierarchies), Gridlines, Bars/Columns (colour per series, Spacing: inner/outer padding), Data labels (position Inside end/Outside end, display units, background), Total labels (for stacked charts), Legend (position, title), Small multiples (grid layout), Zoom slider.
Tip
Mhanje asa: sort bars by value (… › Sort axis › Total Orders › Sort descending), unless the category has a natural order (months, delivery bands).
Practice task
Build a stacked column chart of Total Orders by City with Platform as the legend. Turn on Total labels, then change it to a 100% stacked column and explain what new insight you get.
Ravindra Bagale's Tip
Friends, many students use stacked bars to compare individual segments, but only the bottom segment starts from a common baseline. Use clustered bars when readers must compare segments (UPI vs Card by city), and stacked bars when the total matters most. Sort bars by value unless the axis has a natural order. It's very simple – just make it a habit.
Ravindra Bagale's Tip – मराठी
मित्रांनो, बरेच students वेगवेगळ्या segments ची तुलना करण्यासाठी stacked bars वापरतात, पण फक्त सगळ्यात खालचा segment च common baseline पासून सुरू होतो. वाचकांना segments ची तुलना करायची असेल (city नुसार UPI vs Card) तर clustered bars वापरा, आणि total सगळ्यात महत्त्वाचा असेल तर stacked bars. Axis ला नैसर्गिक क्रम नसेल तर bars value नुसार sort करा. एकदम simple आहे, फक्त सवय लावून घ्या.
Ravindra Bagale's Tip – हिंदी
दोस्तों, बहुत से students अलग-अलग segments की तुलना के लिए stacked bars इस्तेमाल करते हैं, पर सिर्फ़ सबसे नीचे वाला segment ही common baseline से शुरू होता है. जब पढ़ने वालों को segments की तुलना करनी हो (city के हिसाब से UPI vs Card) तो clustered bars इस्तेमाल करो, और जब total सबसे ज़रूरी हो तो stacked bars. Axis का कोई natural order न हो तो bars को value से sort करो. बहुत आसान है, बस आदत बना लो.
Fix common mistakes
| Wrong result | Reason | Correction |
|---|---|---|
| 100% bars hide that Kolhapur is small | 100% charts remove size | Pair it with a stacked or clustered chart, or add the total in the tooltip |
| Segments in different colours on each page | Default colours by order | Set fixed colours per platform in Format › Bars › Colors |
| Too many legend items | High-cardinality field in Legend | Use at most 3–5 legend items |
Practise independently
Practice task
Make a stacked column chart of Total Sales by Month with Category in Legend. Write each month's segments.
Hints
- April has orders 301–303.
- May has 304–308.
Solution
Apr: Dairy 700, Snacks 200, Fruits 0 (total 900). May: Dairy 350, Snacks 450, Fruits 400 (total 1,200).
Think like a professional
Choose clustered for comparison between platforms, stacked for totals, 100% for mix. In a platform review, a 100% chart answers who depends on whom – but always show the size somewhere, or a tiny city looks as important as Pune.
Revision card
Interview card
Comparison card