原文: https://pythonbasics.org/seaborn-distplot/

通过 Seaborn 分布图,您可以显示带有线条的直方图。 这可以以各种变化形式显示。 我们将 Seaborn 与 Python 绘图模块 Matplotlib 结合使用。

分布图绘制观测值的单变量分布。 distplot()函数将 Matplotlib hist函数与 Seaborn kdeplot()rugplot()函数结合在一起。

示例

分布图示例

下图显示了一个简单的分布。 它使用random.randn()创建随机值。如果您也手动定义值,它将起作用。

  1. import matplotlib.pyplot as plt
  2. import seaborn as sns, numpy as np
  3. sns.set(rc={"figure.figsize": (8, 4)}); np.random.seed(0)
  4. x = np.random.randn(100)
  5. ax = sns.distplot(x)
  6. plt.show()

Seaborn 分布图 - 图1

分布图示例

您可以显示分布图的各种变化。 我们使用pylab模块中的subplot()方法来一次显示 4 种变化。

通过更改distplot()方法中的参数,您可以创建完全不同的视图。 您可以使用这些参数来更改颜色,方向等。

  1. import matplotlib.pyplot as plt
  2. import seaborn as sns, numpy as np
  3. from pylab import *
  4. sns.set(rc={"figure.figsize": (8, 4)}); np.random.seed(0)
  5. x = np.random.randn(100)
  6. subplot(2,2,1)
  7. ax = sns.distplot(x)
  8. subplot(2,2,2)
  9. ax = sns.distplot(x, rug=False, hist=False)
  10. subplot(2,2,3)
  11. ax = sns.distplot(x, vertical=True)
  12. subplot(2,2,4)
  13. ax = sns.kdeplot(x, shade=True, color="r")
  14. plt.show()

Seaborn 分布图 - 图2

下载示例

Seaborn 分布

您也可以在直方图中显示 Seaborn 的标准数据集。这是一个很大的数据集,因此仅占用一列。

  1. import matplotlib.pyplot as plt
  2. import seaborn as sns
  3. titanic=sns.load_dataset('titanic')
  4. age1=titanic['age'].dropna()
  5. sns.distplot(age1)
  6. plt.show()

Seaborn 分布图 - 图3

分布图容器

如果您想更改桶的数量或隐藏行,也可以。当调用方法distplot()时,您可以传递箱数并告诉直线(kde)不可见。

  1. import matplotlib.pyplot as plt
  2. import seaborn as sns
  3. titanic=sns.load_dataset('titanic')
  4. age1=titanic['age'].dropna()
  5. sns.distplot(age1,bins=30,kde=False)
  6. plt.show()

Seaborn 分布图 - 图4

Seaborn 不同的绘图

下面的示例显示了其他一些分布图示例。 您通过grid(True)方法调用激活了一个网格。

  1. import matplotlib.pyplot as plt
  2. import seaborn as sns
  3. titanic=sns.load_dataset('titanic')
  4. age1=titanic['age'].dropna()
  5. fig,axes=plt.subplots(1,2)
  6. sns.distplot(age1,ax=axes[0])
  7. plt.grid(True)
  8. sns.distplot(age1,rug=True,ax=axes[1])
  9. plt.show()

Seaborn 分布图 - 图5

下载示例