Простая строка кода для отображения меток данных в гистограмме matplotlib.

искусственный интеллект Python

Это второй день моего участия в августовском испытании обновлений, подробности о мероприятии:Испытание августовского обновления

Всем привет, меня зовут Кай.

С использованиемmatplotlibПри рисовании гистограммы часто бывает необходимо отобразить данные на гистограмме, сегодня мы кратко представим это.

метод plt.text

существуетmatplotlib 3.4.0В предыдущих версиях обычно использовалосьplt.textспособ рисования меток данных.plt.textКак следует из названия, указанный текст можно нарисовать в любом месте изображения, поэтому нам нужно только нарисовать соответствующее значение в точке координат соответствующей точки данных, чтобы реализовать отображение метки данных.

import pandas as pd
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False

fig, ax = plt.subplots(figsize=(8,4), dpi=100)

y_data = [ 29, 21, 17, 14, ]
x_data = ('中国', '美国', '日本', '澳大利亚')

# 柱状图颜色
color = 'coral'

# 柱状图
bar = plt.bar(x_data, y_data, 0.5, color=colors[1],edgecolor='grey')

# 设置标题
ax.set_title('东京奥运会金牌数-截止8月2日',fontsize=14,y=1.05)
# 设置坐标轴标题
ax.set_ylabel("",fontsize = 12,color = 'black',alpha = 0.7,rotation=360)
# 设置Y轴区间
ax.set_ylim(0,30)

# 显示数据标签
for a,b in zip(x_data, y_data):
    plt.text(a,b,
             b,
             ha='center', 
             va='bottom',
            )

# 边框隐藏
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.spines['left'].set_visible(False)

заplt.text(x, y, s, fontdict=None, **kwargs)

x,y: где находится текст (метка)

s: текст для отображения

ha: горизонтальное выравнивание (необязательно: «по центру», «справа», «слева»)

va: вертикальное выравнивание (необязательно: 'центр', 'сверху', 'снизу', 'базовая линия', 'центр_базовая линия')

Метод plt.bar_label

в последнемmatplotlibВерсия(3.4.0 и выше), находим, что существует метод функцииplt.bar_labelОн может хорошо реализовать требования к отображению меток данных для гистограмм (включая гистограммы).

plt.bar_label(
    container,
    labels=None,
    *,
    fmt='%g',
    label_type='edge',
    padding=0,
    **kwargs,
)

container:barилиbarhвозвращаемое значение функции

labels: текстовый список меток, значение по умолчанию — None, то есть данные столбца, отформатированные с параметром fmt (высота столбца

fmt: Строка формата метки, значение по умолчанию — «%g», то есть значение метки отформатировано как число с плавающей запятой.

label_type: Тип метки, необязательно: «край», «центр». По умолчанию «край» Для обычных гистограмм этот параметр используется только для управления положением меток, для гистограмм с накоплением разные типы меток соответствуют разным значениям меток. 'край': метка находится в конце столбца 'center': метка находится в центре столбца

padding: расстояние между меткой и столбцом в пикселях, значение по умолчанию равно 0.

В исходном коде замените часть кода, отображающую метку данных.

# 显示数据标签
plt.bar_label(bar, label_type='edge')

Ссылка на официальный сайт:

матовый сюжет lib.org/stable/API/…

Вышеупомянутое простое содержание на этот раз, вы можете изменить параметры самостоятельно!

Наконец, пожелайте нам больше золота на этих Олимпийских играх!