Pandas: как создать гистограмму из кросс-таблицы
Вы можете использовать следующие методы для создания гистограммы для визуализации счетчиков в кросс-таблице Pandas:
Метод 1: создание кластеризованной гистограммы
import matplotlib. pyplot as plt my_crosstab. plot (kind=' bar ')
Метод 2. Создайте столбчатую диаграмму с накоплением
import matplotlib. pyplot as plt my_crosstab. plot (kind=' bar ', stacked= True )
В следующих примерах показано, как использовать каждый из этих методов на практике со следующей перекрестной таблицей pandas:
import pandas as pd #createDataFrame 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) FG position team AT 12 B 3 1 C 2 2
Пример 1. Создание сгруппированной гистограммы из кросс-таблицы
Мы можем использовать следующий синтаксис для создания сгруппированной гистограммы из кросс-таблицы:
import matplotlib. pyplot as plt #create grouped bar plot my_crosstab. plot (kind=' bar ', rot= 0 )
Примечание . Аргумент rot=0 поворачивает метки по оси X на 90 градусов, чтобы их было легче читать.
По оси X отображаются названия команд, а сгруппированные столбцы отображают частоту каждой позиции.
Например, мы можем увидеть:
- В команде А есть 1 игрок с позицией F.
- В команде А есть 2 игрока с позицией G.
И так далее.
Пример 2. Создание столбчатой диаграммы с накоплением из перекрестной таблицы
Мы можем использовать следующий синтаксис для создания составной гистограммы из перекрестной таблицы:
import matplotlib. pyplot as plt #create stacked bar plot my_crosstab. plot (kind=' bar ', stacked= True , rot= 0 )
Примечание . Аргумент stacked=True позволил нам создать составную гистограмму вместо сгруппированной гистограммы.
По оси X отображаются названия команд, а столбцы, расположенные друг над другом, отображают частоту каждой позиции.
Например, мы можем увидеть:
- В команде А есть 1 игрок с позицией F.
- В команде А есть 2 игрока с позицией G.
- Всего в команде А 3 игрока.
И так далее.
Этот тип графика особенно полезен, когда мы хотим визуализировать общее количество элементов для каждого уникального значения на оси X.
Примечание . Полную документацию по функции pandas crosstab() можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи panda:
Pandas: как создать кросс-таблицу с процентами
Pandas: как использовать aggfunc в функции crosstab()
Pandas: как аннотировать столбцы на гистограмме