Pandas: как построить несколько столбцов на гистограмме


Вы можете использовать следующий синтаксис для построения нескольких столбцов кадра данных pandas на одной гистограмме:

df[['x', 'var1', 'var2', 'var3']].plot(x='x', kind='bar')

Столбец x будет использоваться как переменная оси x, а var1 , var2 и var3 будут использоваться как переменные оси y.

В следующих примерах показано, как использовать эту функцию на практике.

Пример 1. Нанесение столбцов на гистограмму

В следующем коде показано, как построить три столбца на гистограмме, указав, что столбец с именем периода должен использоваться в качестве переменной оси X:

import pandas as pd
import matplotlib.pyplot as plt

#create fake data
df = pd.DataFrame({'period': [1, 2, 3, 4, 5, 6, 7, 8],
 'A': [9, 12, 15, 14, 19, 23, 25, 29],
 'B': [5, 7, 7, 9, 12, 9, 9, 14],
 'C': [5, 4, 7, 13, 15, 15, 18, 31]})

#plot columns on bar chart
df[['period', 'A', 'B', 'C']].plot(x='period', kind='bar') 

Мы также можем выбрать отображение только определенных столбцов, таких как A и B :

df[['period', 'A', 'B']].plot(x='period', kind='bar') 

Пример 2. Нанесение столбцов на линейчатую диаграмму с накоплением

Чтобы создать гистограмму с накоплением, нам просто нужно указать stacked=True в функции построения графика:

import pandas as pd
import matplotlib.pyplot as plt

#create fake data
df = pd.DataFrame({'period': [1, 2, 3, 4, 5, 6, 7, 8],
 'A': [9, 12, 15, 14, 19, 23, 25, 29],
 'B': [5, 7, 7, 9, 12, 9, 9, 14],
 'C': [5, 4, 7, 13, 15, 15, 18, 31]})

#create stacked bar chart
df[['period', 'A', 'B', 'C']].plot(x='period', kind='bar', stacked= True ) 

Чтобы изменить цвета полос, просто используйте аргумент цвета следующим образом:

df[['period', 'A', 'B', 'C']].plot(x='period', kind='bar', stacked= True ,
 color=['red', 'pink', 'gold']) 

Дополнительные ресурсы

Как построить несколько рядов из фрейма данных Pandas
Как сделать диаграмму рассеяния из фрейма данных Pandas