1、使用 distplot 绘制单变量分布
使用 distplot
函数用于绘制单变量(单维度)数据的分布。该函数可以同时显示直方图(Histogram)和核密度估计(Kernel Density Estimate, KDE),核密度估计(KDE)是一种用于估计概率密度函数的非参数方式,可以提供有关数据分布形状的更平滑的视图。distplot 是一个非常灵活的函数,提供了多种参数来自定义图表的外观和行为。常用参数如下,
参数 | 描述 |
a | 输入数组或序列,即要绘制的数据。 |
bins | 设置直方图的箱数或边界。 |
hist | 布尔值,指定是否绘制(标准化的)直方图。 |
kde | 布尔值,指定是否绘制核密度估计(KDE)。 |
rug | 布尔值,指定是否在x轴上添加rug plot(数据点分布图)。 |
fit | 用于将数据拟合到指定的参数化分布。 |
color | 设置直方图、KDE和rug plot的颜色。 |
vertical | 布尔值,如果为 |
norm_hist | 布尔值,如果为 |
axlabel | 设置x轴标签。 |
使用代码:
import seaborn as sns import matplotlib.pyplot as plt import numpy as np # 创建数据 data = np.random.randn(100) # 创建图表 plt.figure(figsize=(8, 6)) # 绘制分布图 sns.distplot(data, bins=30, hist=True, kde=True, rug=True, color='blue', norm_hist=True, axlabel='Data Values', vertical=False, fit=None) # 添加图例 plt.title('cjavapy Distribution Plot') plt.legend(['Histogram', 'KDE', 'Rug Plot']) # 使用 plt.draw() 显示画布 plt.draw() # 显示图表 plt.show()
注意:distplot
函数已过时,在 seaborn v0.14.0 版本中移除。使用 displot
(一个具有类似灵活性的图形级函数)或 histplot
(一个用于显示直方图的轴级函数)替代。
2、使用 displot 和 histplot 绘制单变量分布
displot
和 histplot
都是用于绘制单变量分布的强大工具。displot
是一个 figure-level 函数,提供了多种方式来展示单变量分布,包括直方图、核密度估计等。而 histplot
是一个 axis-level 函数,专门用于绘制直方图。
1)displot 和 histplot 的区别
displot
是一个更高层次的函数,提供了更多的灵活性,能够创建更复杂的分布图,比如分面图(facet grid)。histplot
则更专注于创建直方图,是绘制这类图的专用工具。
2)displot 常用参数及示例
参数 | 描述 |
data | 用于绘图的数据集,通常是 Pandas 的 DataFrame。 |
x | 指定 DataFrame 中用于绘制的列名。 |
kind | 指定图表的种类,如 'hist', 'kde', 'ecdf' 等。 |
bins | 直方图的柱数,仅当 kind='hist' 时有效。 |
kde | 布尔值,表示是否在直方图上绘制核密度估计线,仅当 kind='hist' 时有效。 |
rug | 布尔值,表示是否添加 'rug',在 x 轴上每个数据点的位置添加小细条。 |
color | 设置图形的颜色。 |
height | 设置图形的高度(英寸)。 |
aspect | 设置图形的纵横比。 |
facet_kws | 传递给 FacetGrid 的其他关键字参数。 |
使用示例:
import seaborn as sns import matplotlib.pyplot as plt import numpy as np # 创建数据 data = np.random.normal(size=1000) # 创建 Seaborn displot sns.displot(data, kind='hist', bins=30, kde=True, rug=True, color='blue', height=5, aspect=1.5) # 设置标题 plt.title('cjavapy with Histogram and KDE') # 使用 plt.draw() 显示画布 plt.draw() # 显示图表 plt.show()
3)histplot 常用参数及示例
参数 | 描述 |
data | 数据集,可以是 DataFrame、数组、列表或类似对象。 |
x | 指定数据集中用于绘图的列名(如果 data 是 DataFrame)。用于水平轴。 |
y | 指定数据集中用于绘图的列名(如果 data 是 DataFrame)。用于垂直轴。 |
bins | 指定直方图的箱子数量或边界。可以是整数、序列或字符串。 |
binwidth | 指定每个箱子的宽度。 |
kde | 布尔值,指定是否添加核密度估计(KDE)曲线。 |
color | 指定绘图使用的颜色。 |
stat | 指定如何计算每个箱子的高度。如 'count', 'frequency', 'density', 'probability'。 |
cumulative | 布尔值,指定是否绘制累积直方图。 |
multiple | 指定多个变量的直方图如何显示在一起。如 'layer', 'stack', 'fill', 'dodge'。 |
使用示例:
import seaborn as sns import matplotlib.pyplot as plt import numpy as np # 创建数据 data = np.random.normal(size=100) # 创建直方图 sns.histplot(data=data, bins=20, kde=True, color='green', binwidth=0.5, cumulative=False) # 添加标题 plt.title('cjavapy') # 添加轴标签 plt.xlabel('Value') plt.ylabel('Frequency') # 使用 plt.draw() 显示画布 plt.draw() # 显示图表 plt.show()