Plotly.express.scatter: примеры (PYTHON)

Создание точечных диаграмм с помощью plotly.express.scatter
Раздел: Визуализация, Графики
plotly.express.scatter(data_frame: pandas.DataFrame, x: str or int, y: str or int, color: str or int=None, symbol: str or int=None, size: str or int=None, hover_name: str or int=None, hover_data: list=None, custom_data: list=None, text: str or int=None, facet_row: str or int=No): plotly.graph_objs.Figure

Основные сведения о функции px.scatter

Функция plotly.express.scatter применяется для создания точечных диаграмм (скаттерплотов) в библиотеке Plotly на Python. Этот метод используется для визуализации взаимосвязей между количественными переменными, отображения распределения данных и выявления закономерностей.

Основные аргументы функции:

  • data_frame - DataFrame Pandas, словарь или список словарей с исходными данными
  • x - имя столбца или списка значений для оси X
  • y - имя столбца или списка значений для оси Y
  • color - группировка точек по цвету на основе указанного столбца
  • size - размер точек на основе указанного столбца
  • symbol - форма маркеров на основе указанного столбца
  • hover_name - информация при наведении на точку
  • facet_row - создание подграфиков по строкам
  • facet_col - создание подграфиков по столбцам
  • trendline - добавление линии тренда (ols, lowess, rolling)
  • marginal_x - маргинальное распределение по оси X
  • marginal_y - маргинальное распределение по оси Y

Функция возвращает объект plotly.graph_objects.Figure, который можно дополнительно настроить или отобразить.

Базовые примеры использования

Создание простой точечной диаграммы:

import plotly.express as px
df = px.data.iris()
fig = px.scatter(df, x='sepal_width', y='sepal_length')
fig.show()
График с точками, соответствующими значениям ширины и длины чашелистика ириса

Добавление цветового кодирования по категориям:

fig = px.scatter(df, x='sepal_width', y='sepal_length', 
                 color='species')
fig.show()
Точечная диаграмма с разными цветами для каждого вида ириса

Использование размера точек для третьего измерения:

fig = px.scatter(df, x='sepal_width', y='sepal_length',
                 size='petal_length', color='species')
fig.show()
Диаграмма с цветом по виду и размером по длине лепестка

Альтернативные функции в Python

plotly.graph_objects.Scatter - низкоуровневая функция для создания точечных диаграмм с полным контролем над параметрами. Используется для сложных пользовательских настроек.

matplotlib.pyplot.scatter - функция из библиотеки Matplotlib для создания статических точечных диаграмм. Применяется для простых визуализаций и публикаций в печатных изданиях.

seaborn.scatterplot - функция из библиотеки Seaborn, построенная поверх Matplotlib. Предлагает стилизованные статистические графики с автоматической агрегацией данных.

altair.Chart.mark_point - декларативный подход к визуализации в библиотеке Altair, основанный на грамматике графиков Vega-Lite.

Типичные ошибки при использовании

Передача несуществующего столбца:

fig = px.scatter(df, x='nonexistent_column', y='sepal_length')
KeyError: 'nonexistent_column'

Смешение типов данных в аргументах:

fig = px.scatter(df, x=df['sepal_width'].values, 
                 y='sepal_length')
ValueError: Все аргументы должны быть одного типа

Некорректное использование параметра trendline:

fig = px.scatter(df, x='sepal_width', y='sepal_length',
                 trendline='invalid_method')
ValueError: Параметр trendline принимает значения 'ols', 'lowess' или 'rolling'

Изменения в последних версиях

В Plotly 5.0 появилась поддержка параметра trendline_options для тонкой настройки линий тренда. В версии 5.5 добавлен аргумент text_auto для автоматического форматирования подписей. С версии 5.8 улучшена обработка категориальных данных с большим количеством уникальных значений.

Расширенные примеры использования

Анимация данных с использованием параметра animation_frame:

Пример python
import plotly.express as px
df = px.data.gapminder()
fig = px.scatter(df, x='gdpPercap', y='lifeExp',
                 size='pop', color='continent',
                 hover_name='country',
                 animation_frame='year',
                 log_x=True, size_max=55)
fig.show()
Анимированная диаграмма изменения ВВП и продолжительности жизни по годам

Создание матрицы рассеяния с помощью параметров facet:

Пример python
fig = px.scatter(df, x='sepal_width', y='sepal_length',
                 facet_col='species',
                 facet_col_wrap=2)
fig.show()
Матрица точечных диаграмм с разными видами ириса в отдельных подграфиках

Комбинирование маргинальных распределений и линий тренда:

Пример python
fig = px.scatter(df, x='sepal_width', y='sepal_length',
                 color='species',
                 marginal_x='violin',
                 marginal_y='box',
                 trendline='ols')
fig.show()
Диаграмма рассеяния с линиями тренда и маргинальными распределениями

Кастомизация hover-информации:

Пример python
fig = px.scatter(df, x='sepal_width', y='sepal_length',
                 hover_data=['petal_width', 'petal_length'],
                 custom_data=['species_id'])
fig.update_traces(
    hovertemplate='Ширина: %{x}
Длина: %{y}
Ширина лепестка: %{hoverdata[0]}') fig.show()
Точечная диаграмма с пользовательским форматом всплывающих подсказок

Альтернативы в других языках программирования

JavaScript (Plotly.js):

Plotly.newPlot('myDiv', [{
  x: [1, 2, 3, 4],
  y: [10, 11, 12, 13],
  mode: 'markers',
  type: 'scatter'
}]);
Интерактивная точечная диаграмма в веб-браузере

R (ggplot2):

library(ggplot2)
ggplot(iris, aes(x = Sepal.Width, 
                 y = Sepal.Length)) + 
  geom_point()
Статичный скаттерплот с использованием грамматики графиков

Julia (Plots.jl):

using Plots
scatter(iris.SepalWidth, iris.SepalLength)
Точечная диаграмма в высокопроизводительном языке Julia

питон plotly.express.scatter function comments

En
Plotly.express.scatter Create a scatter plot