Как показать значения на Seaborn Barplot?
В гистограмме Сиборна отображается среднее значение числовой переменной, а столбцы ошибок указывают диапазон возможных значений, окружающих среднее значение. Это полезно при сравнении значений с 0. В Python у нас есть несколько встроенных функций, таких как barplot(), enumerate() и text(), которые можно использовать для отображения значений на Seaborn Barplot. Например, мы можем сравнить средние продажи различных продуктов или средние результаты тестов учащихся в разных классах, используя гистограмму.
Синтаксис
В примерах используется следующий синтаксис:
barplot()
Это встроенная функция Python, которая будет использоваться для сравнения сходства между категориями. Его можно использовать для сравнения среднего значения различных групп.
enumerate()
Это встроенная функция Python, которая добавляет счетчик к итерируемому объекту и возвращает перечисляемый объект. Эта функция принимает два параметра — итерируемый и начальный индекс (значение по умолчанию — 0).
show()
В конце программы используется метод show, который возвращает результат графа фигуры согласно постановке задачи.
Пример 1
В следующем примере мы покажем значения над столбцами. Запустите программу с необходимым модулем с именами seaborn и matplotlib.pyplot и возьмите ссылочный объект sns и plt соответственно. Затем он определяет две оси — x_ax и y_ax для заполнения данных. Затем создайте гистограмму с помощью встроенной функции barplot() и сохраните ее в переменной ax. добавьте значения над столбцами, перебирая значения y с помощью enumerate() и добавляя текст на график с помощью ax.text(). Наконец, используйте метод show(), чтобы вернуть результат.
# Show values above bars
import seaborn as sns
import matplotlib.pyplot as plt
# Data
x_ax = ['A', 'B', 'C', 'D', 'E']
y_ax = [4, 1, 4.5, 2, 3]
# Create a barplot
ax = sns.barplot(x=x_ax, y=y_ax)
# Add values above bars
for i, v in enumerate(y):
ax.text(i, v + 0.2, str(v), ha='center')
plt.show()
Выход
Пример 2
В следующем примере мы запустим программу, импортировав модули seaborn и matplotlib.pyplot и возьмем ссылочный объект sns и plt соответственно. Затем создайте гистограмму с помощью sns.barplot() с x_ax и y_ax в качестве аргументов для осей x и y соответственно. Затем выполните итерацию по данным оси Y, используя цикл for с enumerate(y), чтобы получить как индекс i, так и значение v каждого элемента в списке. Затем используйте метод text() объекта топора, чтобы добавить текст внутри полосок. Первый аргумент — это координата X текста, для которой установлено значение i, чтобы выровнять его по центру каждой полосы.
Второй аргумент — это координата Y текста, для которой установлено значение v/2, чтобы текст располагался в середине каждой полосы. Третий аргумент — это отображаемый текст, для которого установлено значение str(v), чтобы отображать значение каждого столбца в виде строки. Для аргумента ha установлено значение «center», чтобы выровнять текст по горизонтали по центру каждой полосы. Для аргумента цвета установлено значение «белый», чтобы сделать текст белым. Наконец, мы получаем результат с помощью встроенного метода show().
# Show values inside bars
import seaborn as sns
import matplotlib.pyplot as plt
# Data
x_ax = ['A', 'B', 'C', 'D', 'E']
y_ax = [3, 1, 4, 8, 2]
# Create a barplot
ax = sns.barplot(x=x_ax, y=y_ax)
# Add values inside bars
for i, v in enumerate(y):
ax.text(i, v/2, str(v), ha='center', color='white')
plt.show()
Выход
Пример 3
В следующем примере мы покажем значения с пользовательским форматированием. Запустите программу с импорта необходимых модулей — seaborn для создания гистограммы и matplotlib.pyplot для отображения графика. Затем определите данные для осей x и y. Затем создайте гистограмму, используя sns.barplot() с x и y в качестве аргументов для осей x и y соответственно. Затем выполните итерацию по данным оси Y с помощью цикла for и добавьте текст внутри полосок, используя метод text() объекта axe с пользовательским форматированием. Наконец, отобразите график с помощью plt.show().
# Show values with custom formatting
import seaborn as sns
import matplotlib.pyplot as plt
# Data
x = ['A', 'B', 'C', 'D']
y = [0.3, 0.1, 0.2, 1]
# Create a barplot
ax = sns.barplot(x=x, y=y)
# Add values with custom formatting
for i, v in enumerate(y):
ax.text(i, v + 0.02, f'{v:.0%}', ha='center')
plt.show()
Выход
Пример 4
В следующем примере мы покажем значения с пользовательским цветом и размером шрифта. Сначала упомянем необходимые модули — seaborn и matplotlib.pyplot. Затем создайте данные для осей x и y и установите столбец в соответствии с осями, используя встроенный метод barplot(). Затем выполните итерацию по данным оси Y с помощью цикла for и добавьте текст внутри полосок, используя метод text() объекта ax с пользовательским цветом и размером шрифта. В конце отобразите график с помощью show().
# Show values with custom color and font size
import seaborn as sns
import matplotlib.pyplot as plt
# Data
x_axes = ['A', 'B', 'C']
y_axes = [3, 1, 4]
# Create a barplot
ax = sns.barplot(x=x_axes, y=y_axes)
# Add values with custom color and font size
for i, v in enumerate(y):
ax.text(i, v + 0.2, str(v), ha='center', color='#ab09eb', fontsize=21)
plt.show()
Выход
Пример 5
В следующем примере, используя модули seaborn и matplotlib, эта программа создает гистограмму и отображает значения внутри столбцов с настраиваемым положением и поворотом. Значения повернуты на 45 градусов и расположены несколько левее центра каждой полосы.
#Show values with custom position and rotation
import seaborn as sns
import matplotlib.pyplot as plt
# Data
x = ['A', 'B', 'C']
y = [3, 1, 4]
# Create a barplot
ax = sns.barplot(x=x, y=y)
# Add values with custom position and rotation
for i, v in enumerate(y):
ax.text(i - 0.15, v + 0.2, str(v), ha='center', rotation=45)
plt.show()
Выход
Заключение
Мы обсудили различные способы представления Seaborn Barplot. Мы увидели, как функция enumerate() помогает добавить счетчик для итерации. Затем мы увидели форматирование значений с использованием ссылок с именами ha, поворота, цвета и т. д. Этот тип графиков обычно используется в области науки о данных и анализа данных.