Установка размера маркера в точечных диаграммах Matplotlib

В этом руководстве вы узнаете, как определить и установить размер маркеров в точечных диаграммах Matplotlib. Умение управлять размером ваших точечных диаграмм Matplotlib позволяет добавлять дополнительную информацию в ваши точечные диаграммы.

Это позволяет вам передавать больше деталей о ваших данных и делать их понятнее для читателей вашей визуализации. Matplotlib дает возможность настраивать размер как для всех графиков в целом, так и для отдельных графиков, в зависимости от других критериев данных.

К концу этого урока вы научитесь:

  • Как установить размер маркера для всех точек на диаграмме рассеяния Matplotlib

  • Как установить размер маркера для точек на диаграмме рассеяния Matplotlib на основе других данных

  • Разработайте функцию для определения размера маркера в Matplotlib.

Оглавление

Загрузка образца диаграммы рассеяния Matplotlib

Чтобы следовать за этим руководством, не стесняйтесь загружать приведенный ниже график. Код загружает координаты x и y для точечного графика. Кроме того, мы устанавливаем лимиты для осей x и y графика и даем графику заголовок, чтобы лучше понять, что происходит.

Выберите установленный у Вас стиль отображения графика.

import matplotlib.pyplot as plt

# Используем стиль 'seaborn-whitegrid'
# plt.style.use('seaborn-whitegrid')

# Используем стиль 'seaborn-darkgrid'
# plt.style.use('seaborn-darkgrid')

# Или стиль 'ggplot'
# plt.style.use('ggplot')

# Или стиль 'fivethirtyeight'
plt.style.use('fivethirtyeight') # Явно указываем стиль seaborn

x = [1,2,3,4,5,6,7,8,9]
y = [2,4,6,7,4,3,2,4,6]

plt.scatter(x, y)
plt.xlim(0, 10)
plt.ylim(0, 10)
plt.title('Пример точечного графика')
plt.show()

В следующем разделе вы узнаете, как изменить размер маркеров для всех точек в диаграмме рассеяния Matplotlib.

Изменение размера маркера для всех точек в диаграммах рассеяния Matplotlib

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

  • Передача одного значения изменяет размер всех маркеров.

  • Передача списка значений изменяет размер каждого маркера индивидуально.

Давайте посмотрим, как мы можем изменить размер всех маркеров, используя параметр s=

# Изменение размера для всех маркеров в Matplotlib
import matplotlib.pyplot as plt
plt.style.use('fivethirtyeight')
x = [1,2,3,4,5,6,7,8,9]
y = [2,4,6,7,4,3,2,4,6]

# Использование s= для изменения размера маркера
plt.scatter(x, y, s=100)
plt.xlim(0, 10)
plt.ylim(0, 10)
plt.title('Изменение размеров маркеров для всех точек')
plt.show()

Чтобы понять, что контролирует параметр s=, нам нужно изучить документацию. Параметр s определяется как размер маркера в точках ** 2, что означает, что передаваемое значение возводится в квадрат. Чтобы получить маркер размером, скажем, 10, нам нужно передать квадрат этого значения.

Изменение размера маркера для отдельных точек в диаграммах рассеяния Matplotlib на основе других данных

В этом разделе мы рассмотрим использование другого набора значений для задания размера маркеров диаграммы рассеяния в Matplotlib. Если у нас есть дополнительное измерение в наших данных, мы можем использовать значения из этого измерения для контроля размера. Поскольку параметр s= также принимает массив значений, мы можем просто передать этот массив.

Давайте посмотрим, как это может выглядеть. Мы добавим еще один массив значений, который будет контролировать размер:

# Управление размером маркеров с помощью другой переменной
import matplotlib.pyplot as plt
plt.style.use('fivethirtyeight')
x = [1,2,3,4,5,6,7,8,9]
y = [2,4,6,7,4,3,2,4,6]

# Добавление другой переменной для управления размером
z = [10,20,10,15,100,25,50,70,80]

plt.scatter(x, y, s=z)
plt.xlim(0, 10)
plt.ylim(0, 10)
plt.title('Изменение размера маркера в Matplotlib на основе другой переменной')
plt.show()

Этот метод может быть очень полезен, когда мы пытаемся контролировать размер маркера на основе колонки DataFrame.

Определите функцию для определения размеров маркеров в Matplotlib

Следуя логике приведенного выше примера, мы можем определить функцию, которая использует параметры x или y для определения размера маркеров в точечной диаграмме Matplotlib. Приведенный ниже пример иллюстрирует это. Вы можете определить функцию так, как вам нравится.

В приведенном ниже коде размер маркера пропорционален значению x, увеличивая его в 3 раза.

# Использование функции для определения размера маркера
import matplotlib.pyplot as plt
plt.style.use('fivethirtyeight')
x = [1,2,3,4,5,6,7,8,9]
y = [2,4,6,7,4,3,2,4,6]

def set_marker_size(x, factor):
    return [x_i**factor for x_i in x]

plt.scatter(x, y, s=set_marker_size(x,3))
plt.xlim(0, 10)
plt.ylim(0, 10)
plt.title('Использование функции для установки размера маркера точек в Matplotlib')
plt.show()

Каков размер маркера в Matplotlib?

Понимание того, что представляет собой размер маркера, значительно упрощает понимание всей концепции. Может показаться, что мы устанавливали значения произвольно. Однако, как и во всем остальном в Matplotlib, за этим стоит значительная логика.

Каждая точка представляет собой размер пикселя, который изменяется в зависимости от установленного вами разрешения изображения. По умолчанию в Matplotlib используется разрешение 100 DPI (то есть, на дюйм). Если вы измените это значение, то относительные размеры, которые вы видите, также изменятся.

Заключение

В этом уроке вы научились изменять размер маркеров точек в диаграмме рассеяния в Matplotlib. Возможность модифицировать размер маркеров позволяет более эффективно передавать задумку ваших данных. Сначала вы узнали, как изменить размер всех маркеров. Затем вы научились менять размер маркеров на основе какого-либо другого значения. Это позволяет добавить в ваши данные еще одно измерение.

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

Чтобы узнать больше о смежных темах, ознакомьтесь с руководствами ниже:

Last updated