Рубрики
Без рубрики

Matplotlib: Изменение Размера Маркера Точечной диаграммы

В этом уроке мы рассмотрим примеры того, как изменить размер маркера отдельного человека, а также все маркеры в точечной диаграмме Matplotlib с помощью Python.

Автор оригинала: David Landup.

Вступление

Matplotlib – одна из наиболее широко используемых библиотек визуализации данных в Python. Большая часть популярности Matplotlib связана с его настройками – вы можете настроить практически любой элемент из его иерархии объектов .

В этом уроке мы рассмотрим как изменить размер маркера в точечной диаграмме Matplotlib .

Импорт Данных

Мы будем использовать набор данных World Happiness и сравнивать Happiness Score с различными характеристиками, чтобы увидеть, что влияет на восприятие счастья в мире:

import pandas as pd

df = pd.read_csv('worldHappiness2019.csv')

Затем мы можем легко манипулировать размером маркеров, используемых для представления записей в этом наборе данных.

Изменение размера маркера в точечной диаграмме Matplotlib

Давайте начнем с построения показателя щедрости по отношению к ВВП на душу населения:

import matplotlib.pyplot as plt
import pandas as pd

df = pd.read_csv('worldHappiness2019.csv')

fig, ax = plt.subplots(figsize=(10, 6))
ax.scatter(x = df['GDP per capita'], y = df['Generosity'])
plt.xlabel("GDP per Capita")
plt.ylabel("Generosity Score")

plt.show()

Это приводит к:

matplotlib scatter plot

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

Чтобы изменить размер маркеров, мы используем аргумент s для функции scatter () . Это будет аргумент marker size для функции plot() :

import matplotlib.pyplot as plt
import pandas as pd

df = pd.read_csv('worldHappiness2019.csv')

fig, ax = plt.subplots(figsize=(10, 6))
ax.scatter(x = df['GDP per capita'], y = df['Generosity'], s = df['Score']*10)
plt.xlabel("GDP per Capita")
plt.ylabel("Generosity Score")

plt.show()

Мы также умножили значение каждого элемента в списке на произвольное число 25, потому что они ранжированы от 0..1 . Это даст действительно маленькие маркеры, если мы будем использовать их в их первоначальных значениях.

Теперь это приводит к:

matplotlib изменение размера маркера точечной диаграммы

Или еще лучше, вместо того, чтобы грубо умножать все на 25, поскольку значения все равно одинаковы, мы можем сделать что-то вроде этого:

import matplotlib.pyplot as plt
import pandas as pd

df = pd.read_csv('worldHappiness2019.csv')

size = df['Score'].to_numpy()
s = [3*s**2 for s in size]

fig, ax = plt.subplots(figsize=(10, 6))
ax.scatter(x = df['GDP per capita'], y = df['Generosity'], s = s)
plt.xlabel("GDP per Capita")
plt.ylabel("Generosity Score")

plt.show()

Важно иметь список s той же длины , что и x и y , поскольку каждое значение из s теперь применяется к ним. Если список короче или длиннее, код будет нарушен.

Здесь мы извлекли значения из столбца Score , масштабировали их и применили размер обратно к точечной диаграмме:

масштабированный размер маркера точечная диаграмма matplotlib

Установите размер глобального рынка в точечной диаграмме Matplotlib

Если вы хотите отделить размер маркера от какой-либо переменной и просто установить стандартный глобальный размер маркеров на точечной диаграмме, вы можете просто передать одно значение для s :

import matplotlib.pyplot as plt
import pandas as pd

df = pd.read_csv('worldHappiness2019.csv')

fig, ax = plt.subplots(figsize=(10, 6))
ax.scatter(x = df['GDP per capita'], y = df['Generosity'], s = 100)
plt.xlabel("GDP per Capita")
plt.ylabel("Generosity Score")

plt.show()

Теперь это приводит к:

размер мирового рынка matplotlib scatter plot

Вывод

В этом уроке мы рассмотрели, как изменить размер маркера в точечной диаграмме Matplotlib.

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

Визуализация данных в Python , книга для начинающих и промежуточных разработчиков Python, проведет вас через простые манипуляции с данными с Пандами, охватит основные библиотеки построения графиков, такие как Matplotlib и Seaborn, и покажет вам, как использовать преимущества декларативных и экспериментальных библиотек, таких как Altair.