Bar chart: concepts of bar chart bar(), set title, xlabel and ylabel

A bar chart compares one number across separate categories: plt.bar(categories, values) draws it, and it closes ResultDesk's chart kit alongside scatter, line and histogram.

9 min read · 9 cards · 2 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

The last question on the dashboard

ResultDesk has answered relationships (scatter), trends (line) and shapes (histogram). The principal's final request is the simplest sounding one: "which subjects are we weakest in, at a glance?"

Five subjects, five averages: DBMS 51, Maths 68, Python 72, Stats 55, English 74.

A glance means no reading, no comparing digits: just heights standing next to each other. The oldest chart in the book does exactly this, and it is the one everyone already knows how to read.

Theory

A police lineup for numbers

Stand the five subjects side by side like a lineup, each one as tall as its average.

The eye does the rest instantly: tallest = strongest, shortest = weakest, gaps between heights = how far apart they really are. No sorting through digits, no mental arithmetic. A bar chart is a lineup for values: one bar per category, height is the testimony.

Theory

Bar chart, formally

plt.bar(categories, values) draws one separated bar per category, height = value.

The x axis holds discrete labels (subjects, cities, semesters-as-groups): their order is yours to choose, and sorting by value usually reads best.

Two variants worth naming:

  • plt.barh(categories, values): horizontal bars: the fix for long category names.
  • Grouped/stacked bars exist for two-factor comparisons: know they exist, master them later.

One honesty rule: bar charts should start their value axis at zero: bar area encodes the value, and a truncated axis inflates differences.

Practical

The weakest-subject lineup

import matplotlib.pyplot as plt
import pandas as pd

df = pd.read_csv('marks.csv')

# the aggregate: average score per subject (Unit 1's GROUP BY, pandas-style)
avg = df.groupby('subject')['score'].mean().sort_values()

plt.bar(avg.index, avg.values)          # categories, heights
plt.title('Average score by subject')
plt.xlabel('Subject')
plt.ylabel('Average score')
plt.show()

# long subject names? go horizontal:
# plt.barh(avg.index, avg.values)

# the pandas shortcut, one line, same chart:
# df.groupby('subject')['score'].mean().plot(kind='bar')

This example runs in Gri-Learn on the web, where you can edit it and see the output.

Quiz

Average score per SUBJECT (five subjects) must be compared at a glance. Why is a bar chart the right pick over a histogram?

  1. Subjects are separate categories to compare; a histogram bins one continuous variable instead
  2. Histograms cannot show averages above 50
  3. Bar charts are always better than histograms
  4. A histogram would need bins= which is too hard to choose
Show the answer

Subjects are separate categories to compare; a histogram bins one continuous variable instead

The x axis here is five discrete categories, each carrying one aggregate value: the bar chart's exact definition. A histogram answers a different question (how are values of ONE numeric column distributed?): it has no notion of "DBMS vs Maths". Options B and D invent limitations; option C is the kind of absolute that loses marks: charts are right FOR questions, never in general.

Think first

Choose the chart, four times

The final exam of this unit. Pick scatter, line, histogram or bar for each: (1) study hours vs CGPA across 200 students; (2) college admissions per year, 2020 to 2026; (3) spread of Python scores in one class; (4) average score of each of 8 subjects. Answer all four before tapping.

Show the answer

(1) Scatter: relationship between two measures across records.

(2) Line: a trend along an ordered (time) axis.

(3) Histogram: distribution of one numeric variable.

(4) Bar: comparison across separate categories.

Four right = the whole unit compressed into one reflex: match the chart to the QUESTION, not to the data's prettiness. This four-way choice is a guaranteed exam and interview question.

Watch out

The honesty rules

Start bars at zero: a y axis from 45 to 75 makes DBMS (51) look one-third the height of English (74): a visual lie: the real ratio is 0.69, not 0.33.

Do not bar-chart a time trend just because bars look solid: the line chart's slope tells the trend story better.

And the recurring confusion: bars apart = categories (bar chart); bars touching = binned number line (histogram).

Theory

ResultDesk, complete

Step back and look at what you built across 26 topics: SQL that answers questions, backups that survive disasters, Python that automates it, pandas that analyses it, and four charts that make a room understand it. That pipeline (store, query, process, visualize) is not just this subject's syllabus: it is the shape of every data role in the industry. BCA302 next semester-slot deepens the statistics; the toolkit is already yours.

Summary

Key takeaways

  • plt.bar(categories, values): one separated bar per category, height = the value.
  • Use for comparing an aggregate across discrete categories; sort by value for readability.
  • plt.barh() goes horizontal: the fix for long labels.
  • Bar value-axes should start at zero: truncation visually inflates differences.
  • The four-chart reflex: scatter = relationship, line = trend, histogram = distribution, bar = category comparison.
  • pandas shortcut: df.groupby(...).mean().plot(kind='bar').
  • Memory hook: a police lineup for numbers.

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from Data Visualization using dataframe

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati

Bar chart: concepts of bar chart bar(), set title, xlabel and ylabel · Database Handling using Python · Gri-Learn