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

Введение Matplotlib - одна из наиболее широко используемых библиотек визуализации данных в Python. Большая часть популярности Matplotlib связана с его параметрами настройки - вы можете настроить практически любой элемент из его иерархии объектов. В этом уроке мы рассмотрим, как изменить размер маркера на графике рассеяния Matplotlib. Импорт данных Мы будем использовать набор данных World Happiness [https://www.kaggle.com/unsdsn/world-happiness] и сравнивать показатель счастья с различными функциями, чтобы увидеть

Вступление

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

В этом уроке мы рассмотрим, как изменить размер маркера на графике рассеяния Matplotlib .

Импортировать данные

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

 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{.ezlazyload}

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

Чтобы изменить размер маркеров, мы используем s для функции scatter() . Это будет markersize для функции 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']*25) 
 plt.xlabel("GDP per Capita") 
 plt.ylabel("Generosity Score") 
 
 plt.show() 

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

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

matplotlib изменить размер маркера диаграммыразброса{.ezlazyload}

Или еще лучше, вместо того, чтобы грубо умножать все на 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{.ezlazyload}

Установите глобальный размер маркера в точечной диаграмме 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{.ezlazyload}

Заключение

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

Если вас интересует визуализация данных и вы не знаете, с чего начать, обязательно ознакомьтесь с нашим комплектом книг по визуализации данных в Python{.ebook-link} :

::: {style=“border: 1px solid #ebebeb;padding: 15px;"} {.ebook-link}

Визуализация данных в Python

::: {.row} ::: {.col-md-4 .col-xs-12} {.ezlazyload .img-responsive .center-block} :::

::: {.col-md-8 .col-xs-12 .my-auto} Станьте опасными с визуализацией данных

✅ 30-дневная гарантия возврата денег без вопросов

✅ от начального до продвинутого

✅ Регулярно обновляется бесплатно (последнее обновление в апреле 2021 г.)

✅ Обновлено с бонусными ресурсами и руководствами ::: ::: :::

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

Он служит подробным руководством, которое научит вас всему, что вам нужно знать о Pandas и Matplotlib, в том числе о том, как создавать типы графиков, которые не встроены в саму библиотеку.

Книга «Визуализация данных в Python» , книга для начинающих и средних разработчиков Python, проведет вас через простые манипуляции с данными с помощью Pandas, охватит основные библиотеки построения графиков, такие как Matplotlib и Seaborn, и покажет, как использовать преимущества декларативных и экспериментальных библиотек, таких как Altair. В частности, на протяжении 11 глав эта книга охватывает 9 библиотек Python: Pandas, Matplotlib, Seaborn, Bokeh, Altair, Plotly, GGPlot, GeoPandas и VisPy.

Он служит уникальным практическим руководством по визуализации данных в виде множества инструментов, которые вы можете использовать в своей карьере.

comments powered by Disqus