我想要将两个柱状图并排画出,第一个是完整数据集的,第二个是数据集的子集。为了比较,我想让它们都有相同的类区间,并且需要按照Freedman-Diaconis规则计算bin宽度,(可能是sns.histplot的默认模式,根据Stack Overflow回答)。
我想让第一个柱状图的bins使用sns.histplot()函数默认值。
然后,我想提取第一个图所使用的bin间隔或断点列表,并在生成第二个直方图时使用它作为参数。
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.datasets import load_boston
boston = load_boston()
df = pd.DataFrame(boston.data, columns=boston.feature_names)
# Histograms
f, axs = plt.subplots(1, 2, figsize=(15, 4.5))
a = sns.histplot(df['NOX'], ax=axs[0], color='steelblue')
b = sns.histplot(df.NOX[df.CRIM > 10.73], ax=axs[1], color='darkgreen')
plt.show()
问题:
1)如何提取sns.histplot()使用的箱子列表?
2)如何使用Freedman-Diaconis规则绘制具有相同箱子的2个直方图?