How can I create a bar plot from a crosstab in Pandas? 2

How can I create a bar plot from a crosstab in Pandas?

Creating a bar plot from a crosstab in Pandas involves using the crosstab function to generate a tabular representation of the data, and then using the plot.bar() function to visualize it as a bar plot. This method allows for easy comparison and analysis of categorical data, making it a useful tool for data exploration and presentation. By utilizing the functionalities of Pandas, creating a bar plot from a crosstab is a straightforward process that can provide valuable insights into the relationships between variables.

Pandas: Create Bar Plot from Crosstab


You can use the following methods to create a bar plot to visualize the counts in a pandas crosstab:

Method 1: Create Grouped Bar Plot

import matplotlib.pyplotas plt

my_crosstab.plot(kind='bar')

Method 2: Create Stacked Bar Plot

import matplotlib.pyplotas plt

my_crosstab.plot(kind='bar', stacked=True)

The following examples show how to use each of these methods in practice with the following pandas crosstab:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C'],
                   'position':['G', 'G', 'F', 'G', 'F', 'F', 'F', 'G', 'G', 'F', 'F'],
                   'points': [22, 25, 24, 39, 34, 20, 18, 17, 20, 19, 22]})

#create crosstab to display count of players by team and position
my_crosstab = pd.crosstab(df.team, df.position)

#view crosstab
print(my_crosstab)

position  F  G
team          
A         1  2
B         3  1
C         2  2

Example 1: Create Grouped Bar Plot from Crosstab

We can use the following syntax to create a grouped bar plot from the crosstab:

import matplotlib.pyplotas plt

#create grouped bar plot
my_crosstab.plot(kind='bar', rot=0)

pandas grouped bar plot from crosstab

Note: The argument rot=0 rotates that x-axis labels 90 degrees to make them easier to read.

The x-axis displays the team names while the grouped bars display the frequency count of each position.

For example, we can see:

  • There is 1 player on team A with a position of F.
  • There are 2 players on team A with a position of G.

And so on.

Example 2: Create Stacked Bar Plot from Crosstab

import matplotlib.pyplotas plt

#create stacked bar plot
my_crosstab.plot(kind='bar', stacked=True, rot=0)

Note: The argument stacked=True allowed us to create a stacked bar plot instead of a grouped bar plot.

The x-axis displays the team names while the stacked bars display the frequency count of each position.

For example, we can see:

  • There is 1 player on team A with a position of F.
  • There are 2 players on team A with a position of G.
  • There are 3 total players on team A.

And so on.

This type of plot is particularly useful when we want to visualize the total count of elements for each unique value on the x-axis.

Note: You can find the complete documentation for the pandas crosstab() function .

The following tutorials explain how to perform other common tasks in pandas:

Cite this article

stats writer (2024). How can I create a bar plot from a crosstab in Pandas?. PSYCHOLOGICAL SCALES. Retrieved from https://scales.arabpsychology.com/stats/how-can-i-create-a-bar-plot-from-a-crosstab-in-pandas/

stats writer. "How can I create a bar plot from a crosstab in Pandas?." PSYCHOLOGICAL SCALES, 24 Jun. 2024, https://scales.arabpsychology.com/stats/how-can-i-create-a-bar-plot-from-a-crosstab-in-pandas/.

stats writer. "How can I create a bar plot from a crosstab in Pandas?." PSYCHOLOGICAL SCALES, 2024. https://scales.arabpsychology.com/stats/how-can-i-create-a-bar-plot-from-a-crosstab-in-pandas/.

stats writer (2024) 'How can I create a bar plot from a crosstab in Pandas?', PSYCHOLOGICAL SCALES. Available at: https://scales.arabpsychology.com/stats/how-can-i-create-a-bar-plot-from-a-crosstab-in-pandas/.

[1] stats writer, "How can I create a bar plot from a crosstab in Pandas?," PSYCHOLOGICAL SCALES, vol. X, no. Y, ص Z-Z, June, 2024.

stats writer. How can I create a bar plot from a crosstab in Pandas?. PSYCHOLOGICAL SCALES. 2024;vol(issue):pages.

Download Post (.PDF)
Slide Up
x
PDF
Scroll to Top