亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

繪制兩個直方圖。為什么一個人有 kde 而另一個人沒有呢?

繪制兩個直方圖。為什么一個人有 kde 而另一個人沒有呢?

翻過高山走不出你 2023-07-27 15:57:21
因此,我正在學習 Kaggle 數據可視化微型課程,并學習了繪制直方圖的課程。因此,練習要求繪制兩個直方圖,我這樣做了,它起作用了,但如果我在其中一個圖上添加 kde = False,則只有該圖可見,而不會顯示另一個圖:           `sns.distplot(a = cancer_b_data['Area (mean)'], kde = False)              sns.distplot(a = cancer_m_data['Area (mean)'])  `不知道我聽起來有多愚蠢,但任何澄清都會有幫助。謝謝
查看完整描述

1 回答

?
當年話下

TA貢獻1890條經驗 獲得超9個贊

默認情況下kde=True,kde 被標準化,使得曲線下的面積為 1。為了在同一圖中一起顯示,直方圖也將被標準化,以便所有條形的總面積之和為一。


使用 時kde=False,默認直方圖將顯示頻率(每個箱的計數),這是更大的數字。如果將兩者顯示在具有相同軸的同一圖中,則歸一化直方圖不會消失,但會非常小。使用縮放工具,您可以驗證它是否仍然存在。要查看兩者具有相同的尺寸,sns.distplot(..., kde=False, norm_hist=True)可以使用


您會注意到,兩個直方圖不使用相同的箱邊界。這些邊界是使用樣本數量以及各個樣本集的最小值和最大值來計算的。


要真正比較兩個直方圖,可以設置顯式的 bin,因此兩者都使用相同的 bin 邊界。


以下代碼和圖比較了比較直方圖的 3 種不同方法:


import matplotlib.pyplot as plt

import numpy as np

import seaborn as sns


x1 = np.random.randn(100).cumsum()

x2 = np.random.randn(100).cumsum()

fig, (ax1, ax2, ax3) = plt.subplots(ncols=3, figsize=(15, 4))


sns.distplot(a=x1, kde=False, ax=ax1)

sns.distplot(a=x2, ax=ax1)

ax1.set_title('one histogram without kde')


sns.distplot(a=x1, kde=False, norm_hist=True, ax=ax2)

sns.distplot(a=x2, ax=ax2)

ax2.set_title('setting norm_hist=True')


xmin = min(x1.min(), x2.min())

xmax = max(x1.max(), x2.max())

bins = np.linspace(xmin, xmax, 11)

sns.distplot(a=x1, kde=False, norm_hist=True, bins=bins, ax=ax3)

sns.distplot(a=x2, bins=bins, ax=ax3)

ax3.set_title('using the same bins')


plt.tight_layout()

plt.show()

http://img1.sycdn.imooc.com//64c223a50001c94314780386.jpg

查看完整回答
反對 回復 2023-07-27
  • 1 回答
  • 0 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號