gpt4 book ai didi

python - Pandas 散点矩阵 - 直方图是什么意思?

转载 作者:行者123 更新时间:2023-12-05 04:55:17 25 4
gpt4 key购买 nike

我不理解 Pandas 散点矩阵中的直方图。

我绘制了 iris 数据集的散点矩阵。

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')

看起来像这样。

enter image description here

第一个直方图看起来频率不正确,所以我自己对列进行了分箱。

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)

该图与我制作的箱子相匹配。分布与散点矩阵中的第一个直方图具有相同的形状,但为什么散点矩阵直方图具有不同的频率?

enter image description here

最佳答案

所有散点图都将根据所比较的两个变量的范围具有单位和刻度线,而对角线子图是分析一个变量的直方图。请注意,y 轴的所有单位都是 cm匹配数据,但直方图不会以 cm 为单位而是频率。

因此没有显示直方图的频率,因为我猜不清楚这些刻度线应该出现在哪里,但我同意这可能会造成混淆。

顺便说一句,如果您改为绘制 kde,则不会显示刻度线,但整体形状与直方图一样正确。

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

enter image description here

关于python - Pandas 散点矩阵 - 直方图是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65452754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com