Автор оригинала: 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()
Это приводит к:
Теперь предположим, что мы хотели бы увеличить размер каждого маркера, исходя из воспринимаемого счастья жителей этой страны. Оценка счастья-это список, идущий прямо из 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
. Это даст действительно маленькие маркеры, если мы будем использовать их в их первоначальных значениях.
Теперь это приводит к:
Или еще лучше, вместо того, чтобы грубо умножать все на 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
Если вы хотите отделить размер маркера от какой-либо переменной и просто установить стандартный глобальный размер маркеров на точечной диаграмме, вы можете просто передать одно значение для 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.
Если вы заинтересованы в визуализации данных и не знаете, с чего начать, обязательно ознакомьтесь с нашей книгой .
Визуализация данных в Python , книга для начинающих и промежуточных разработчиков Python, проведет вас через простые манипуляции с данными с Пандами, охватит основные библиотеки построения графиков, такие как Matplotlib и Seaborn, и покажет вам, как использовать преимущества декларативных и экспериментальных библиотек, таких как Altair.