Матрица рассеяния панд - что означают гистограммы?

Я не понимаю гистограммы в матрице рассеяния Pandas.

Я построил матрицу рассеяния набора данных по радужной оболочке.

from sklearn import datasets
import pandas as pd
import matplotlib.pyplot as plt

iris = datasets.load_iris()
X = iris.data
y = iris.target
df = pd.DataFrame(X, columns=iris.feature_names)

_ = pd.plotting.scatter_matrix(df, c=y, figsize=[8, 8], s=150, marker='D')

Похоже на это.

Первая гистограмма не выглядела так, как будто у нее были правильные частоты, поэтому я сам отсортировал столбец.

df['sep_len_bin'] = pd.cut(df['sepal length (cm)'], 10)
print(df.sep_len_bin.value_counts().sort_index())

Я получил эти результаты. Эти частоты не соответствуют первой гистограмме в матрице рассеяния.

(4.296, 4.66]     9
(4.66, 5.02]     23
(5.02, 5.38]     14
(5.38, 5.74]     27
(5.74, 6.1]      22
(6.1, 6.46]      20
(6.46, 6.82]     18
(6.82, 7.18]      6
(7.18, 7.54]      5
(7.54, 7.9]       6
Name: sep_len_bin, dtype: int64

Затем я построил гистограмму сам по себе.

plt.hist(df['sepal length (cm)'], bins=10)

Фигура соответствует корзинам, которые я сделал. Распределение имеет ту же форму, что и первая гистограмма в матрице рассеяния, но почему гистограмма матрицы рассеяния имеет другие частоты?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
3
0
776
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

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

_ = pd.plotting.scatter_matrix(df, c=y, figsize=[8, 8], s=150, marker='D', diagonal='kde')

Конечно. Единица оси y относится к точечным графикам в той же строке. Он не может показать вам шкалу частот одновременно. Да, именно это меня и смутило. Спасибо, @derek-о

Jai Jeffryes 26.12.2020 18:47

Другие вопросы по теме