Автор оригинала: David Landup.
Matplotlib Scatter Plot – Учебник и примеры
Вступление
Matplotlib – одна из наиболее широко используемых библиотек визуализации данных в Python. От простых до сложных визуализаций-это библиотека для большинства.
В этом уроке мы рассмотрим, как построить точечную диаграмму в Matplotlib .
Импорт Данных
Мы будем использовать набор данных Ames Housing и визуализировать корреляции между объектами из него.
Давайте импортируем панд и загрузим в набор данных:
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
Если вы хотите сравнить более чем одну переменную с другой, например – проверить корреляцию между общим качеством дома и ценой продажи, а также площадью над уровнем земли – для этого нет необходимости делать 3D-график.
Хотя 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
чтобы указать, что мы хотели бы создать экземпляр двух подзаголовков на рисунке.
Мы можем получить доступ к ним через Axes
instance – ax
. ax[0]
относится к осям первого подзаголовка, в то время как ax[1]
относится к осям второго подзаголовка.
Здесь мы вызвали функцию scatter()
для каждого из них, снабдив их метками. Запуск этого кода приводит к:
Построение 3D точечной диаграммы в Matplotlib
Если вы не хотите визуализировать это в двух отдельных подзаголовках, вы можете построить корреляцию между этими переменными в 3D. Matplotlib имеет встроенную функцию 3D-построения графиков, так что сделать это просто.
Во-первых, нам нужно импортировать класс 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()
Запуск этого кода приводит к интерактивной 3D-визуализации, которую мы можем панорамировать и проверять в трехмерном пространстве:
Настройка точечной диаграммы в Matplotlib
Вы можете изменить внешний вид графика, предоставив функции scatter()
дополнительные аргументы, такие как color
, alpha
и т. Д:
ax.scatter(x = df['Gr Liv Area'], y = df['SalePrice'], color = "blue", edgecolors = "white", linewidths = 0.1, alpha = 0.7)
Запуск этого кода приведет к:
Вывод
В этом уроке мы рассмотрели несколько способов построения точечной диаграммы с помощью Matplotlib и Python.
Если вы заинтересованы в визуализации данных и не знаете, с чего начать, обязательно ознакомьтесь с нашей связкой книг on :
Визуализация данных в Python с Matplotlib и Pandas – это книга, предназначенная для того, чтобы познакомить абсолютных новичков с Pandas и Matplotlib, обладающих базовыми знаниями Python, и позволить им создать прочную основу для продвинутой работы с библиотеками тезисов-от простых сюжетов до анимированных 3D-сюжетов с интерактивными кнопками.
Он служит углубленным руководством, которое научит вас всему, что вам нужно знать о пандах и Matplotlib, включая то, как создавать типы сюжетов, которые не встроены в саму библиотеку.
Визуализация данных в Python , книга для начинающих и промежуточных разработчиков Python, проведет вас через простые манипуляции с данными с Пандами, охватит основные библиотеки построения графиков, такие как Matplotlib и Seaborn, и покажет вам, как использовать преимущества декларативных и экспериментальных библиотек, таких как Altair. Более конкретно, в течение 11 глав эта книга охватывает 9 библиотек Python: Pandas, Matplotlib, Seaborn, Bokeh, Altair, Plotly, GGPlot, GeoPandas и VisPy.
Он служит уникальным практическим руководством по визуализации данных, в изобилии инструментов, которые вы могли бы использовать в своей карьере.