визуализация
January 1, 2023

Графические трюки для рассеивания плотных пятен

Рассмотрим, ключевые способы оптимизации графика при наслоении точек на примере датасета о пассажирах Титаника:

!wget https://s3.amazonaws.com/h2o-public-test-data/smalldata/gbm_test/titanic.csv
import pandas as pd
import seaborn as sns
sns.set(rc={'figure.figsize':(10,6)})

df = pd.read_csv("titanic.csv")
df.head(2)

Отобразим график зависимости стоимости билета от возраста пассажира (в примерах буду использовать библиотеку Seaborn):

sns.scatterplot(data=df, y='fare', x='age')

Наша задачи - сделать визуально более наглядной часть в области перекрывающихся точек.

Размер точек

Для этого можно уменьшить размер точек с параметром s:

sns.scatterplot(data=df, y='fare', x='age',  s=5)

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

Прозрачность

Другим способом является задание прозрачности с параметром alpha:

sns.scatterplot(data=df, y='fare', x='age',  alpha=0.1)

Маркер

Как вариант, попробуйте поменять маркер точки с аргументом marker (список тут):

sns.scatterplot(data=df, y='fare', x='age', marker=".")

Двумерная гистограмма

Скопления точек позволяет увидеть двумерная гистограмма, которая в Seaborn задается функцией jointplot:

sns.jointplot(data=df, y='fare', x='age', kind='hist', bins=(50,50))