DevGang
Авторизоваться

Диаграмма рассеивания Matplotlib - Учебное пособие и примеры 

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

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

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

Мы будем использовать набор данных Ames Housing и визуализировать корреляции между объектами из него.

Давайте импортируем Pandas и загрузим набор данных:

import pandas as pd

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

Постройте диаграмму рассеивания в Matplotlib

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

import matplotlib.pyplot as plt
import pandas as pd

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

fig, ax = plt.subplots(figsize=(10, 6))
ax.scatter(x = df['Gr Liv Area'], y = df['SalePrice'])
plt.xlabel("Living Area Above Ground")
plt.ylabel("House Price")

plt.show()

Здесь мы создали график, используя экземпляр PyPlot, и установили размер фигуры. Используя возвращенный объект Axes, который возвращается из функции subplots(), мы вызвали функцию scatter().

Мы должны поставить аргументы x и y, которые мы хотели бы использовать, чтобы заполнить участок. Выполнение этого кода приводит к:

Мы также установили метки x и y, чтобы указать, что представляют собой переменные. Между этими двумя переменными существует явная положительная корреляция. Чем больше площадь над землей, тем выше была цена дома.

Есть несколько отклонений, но подавляющее большинство следует этой гипотезе.

Построение графиков множественного разброса в Matplotlib

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

Хотя существуют 2D-графики, которые визуализируют корреляции между более чем двумя переменными, некоторые из них не совсем подходят для начинающих.

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

Давайте посмотрим, как это сделать:

import matplotlib.pyplot as plt
import pandas as pd

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

fig, ax = plt.subplots(2, figsize=(10, 6))
ax[0].scatter(x = df['Gr Liv Area'], y = df['SalePrice'])
ax[0].set_xlabel("Living Area Above Ground")
ax[0].set_ylabel("House Price")

ax[1].scatter(x = df['Overall Qual'], y = df['SalePrice'])
ax[1].set_xlabel("Overall Quality")
ax[1].set_ylabel("House Price")

plt.show()

Здесь мы вызвали plt.subplots(), с параметром 2, чтобы указать, что мы хотели бы создать экземпляры двух подзаголовков на рисунке.

Мы можем получить к ним доступ через экземпляр Axesax. ax[0] относится к осям первого подзаголовка, а ax[1] относится к осям второго подзаголовка.

Здесь мы вызвали функцию scatter() для каждого из них, снабдив их метками. Выполнение этого кода приводит к:

Построение трехмерной диаграммы рассеяния в Matplotlib

Если вы не хотите визуализировать это в двух отдельных подзаголовках, вы можете построить корреляцию между этими переменными в 3D. Matplotlib имеет встроенную функцию трехмерного построения графиков, так что сделать это очень просто.

Во-первых, нам нужно импортировать класс Axes3D из mpl_toolkits.mplot3d. Этот специальный тип необходим для 3D-визуализации. С его помощью мы можем передать другой аргумент z - это третья функция, которую мы хотели бы визуализировать.

Давайте продолжим и импортируем объект Axes3D и построим диаграмму рассеяния для трех предыдущих функций:

import matplotlib.pyplot as plt
import pandas as pd
from mpl_toolkits.mplot3d import Axes3D

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

fig = plt.figure()
ax = fig.add_subplot(111, projection = '3d')

x = df['SalePrice']
y = df['Gr Liv Area']
z = df['Overall Qual']

ax.scatter(x, y, z)
ax.set_xlabel("Sale price")
ax.set_ylabel("Living area above ground level")
ax.set_zlabel("Overall quality")

plt.show()

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

Настройка точечной диаграммы в Matplotlib

Вы можете изменить внешний вид графика, снабдив функцию scatter() дополнительными аргументами, такими как coloralpha и т.д.:

ax.scatter(x = df['Gr Liv Area'], y = df['SalePrice'], color = "blue", edgecolors = "white", linewidths = 0.1, alpha = 0.7)

Выполнение этого кода приведет к:

Вывод

В этом руководстве мы рассмотрели несколько способов построения графика рассеяния с использованием Matplotlib и Python

Источник:

#Python #Pandas #Matplotlib
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

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

Попробовать

Оплатив хостинг 25$ в подарок вы получите 100$ на счет

Получить