文章目录
- 专栏导读
- 1、Matplotlib箱线图boxplot()基本语法
- 2、Matplotlib箱线图boxplot()举例异常值
- 3、Matplotlib箱线图boxplot()样式定义
- 4、Matplotlib箱线图boxplot()举例带缺口
- 5、Matplotlib箱线图boxplot()举例横向显示
- 6、Matplotlib箱线图boxplot()举例显示平均值
- 7、Matplotlib箱线图boxplot()举例隐藏异常值
- 8、Matplotlib箱线图boxplot()举例异常值的样式
- 9、Matplotlib箱线图boxplot()举例箱子的样式
- 11、Matplotlib箱线图boxplot()举例标签说明
专栏导读
1、Matplotlib箱线图boxplot()基本语法
箱线图(Box Plot)是一种用于显示数据分布和异常值的可视化方法。它展示了一组数据的五个统计量:最小值(minimum)、第一四分位数(lower quartile)、中位数(median)、第三四分位数(upper quartile)和最大值(maximum)。箱线图还可以显示异常值(outliers)和数据的分布情况。
Matplotlib库提供了绘制箱线图的函数,其基本语法如下:
plt.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None,
patch_artist=None, meanline=None, showmeans=None, showcaps=None, showbox=None,
showfliers=None, boxprops=None, labels=None, flierprops=None, medianprops=None,
meanprops=None, capprops=None, whiskerprops=None)
下面是一些常用参数的解释:
- x: 必需参数,要绘制箱线图的数据,可以是一个数组、一个或多个列表、或一个二维数组。
- notch: 可选参数,控制箱体是否带缺口,默认值为False。
- sym: 可选参数,指定异常值的标记符号,默认值为None。
- vert: 可选参数,控制箱线图的方向,可以是垂直(True)或水平(False),默认值为True。
- whis: 可选参数,指定箱线图的须的长度,表示数据的分布范围,默认值为1.5。
- showfliers: 可选参数,控制是否显示异常值,默认值为True。
- boxprops: 可选参数,用于设置箱体的属性,如颜色、填充等。
- labels: 可选参数,用于设置箱线图的标签。
下面是一个简单的示例,演示如何使用箱线图绘制一组数据的分布:
import matplotlib.pyplot as plt
import numpy as np
# 生成随机数据
np.random.seed(0)
data = np.random.randn(100)
# 绘制箱线图
plt.boxplot(data)
# 添加标签和标题
plt.xlabel('Data')
plt.ylabel('Values')
plt.title('Box Plot')
# 显示图表
plt.show()
下面是一个示例,演示如何绘制多个箱线图:
import matplotlib.pyplot as plt
import numpy as np
# 生成随机数据
np.random.seed(0)
data1 = np.random.randn(100)
data2 = np.random.randn(100)
data3 = np.random.randn(100)
# 将数据组织为二维数组
data = [data1, data2, data3]
# 绘制多个箱线图
plt.boxplot(data)
# 添加标签和标题
plt.xlabel('Data')
plt.ylabel('Values')
plt.title('Multiple Box Plots')
# 显示图表
plt.show()
2、Matplotlib箱线图boxplot()举例异常值
在箱线图中,异常值是指位于数据分布之外的值,它们与其他数据点相比明显偏离。异常值可以通过箱线图的须和离群点来表示。
下面是一个示例,演示如何在箱线图中标记异常值:
import matplotlib.pyplot as plt
import numpy as np
# 生成带有异常值的随机数据
np.random.seed(0)
data = np.concatenate([np.random.normal(0, 1, 100), np.array([5, -5, 8, -8])])
# 绘制箱线图
plt.boxplot(data, showfliers=True)
# 添加标签和标题
plt.xlabel('Data')
plt.ylabel('Values')
plt.title('Box Plot with Outliers')
# 显示图表
plt.show()
3、Matplotlib箱线图boxplot()样式定义
boxplot()函数提供了一系列参数,可以用于自定义箱线图的样式。
import matplotlib.pyplot as plt
import numpy as np
# Generate random data
np.random.seed(0)
data = np.random.randn(100)
# Define boxplot styles
boxprops = dict(facecolor='lightblue')
flierprops = dict(marker='o', markerfacecolor='green', markersize=5, linestyle='none')
# Create boxplot
plt.boxplot(data, patch_artist=True, boxprops=boxprops, flierprops=flierprops)
# Add labels and title
plt.xlabel('Data')
plt.ylabel('Values')
plt.title('Customized Box Plot')
# Show the plot
plt.show()
4、Matplotlib箱线图boxplot()举例带缺口
当绘制箱线图时,你可以使用notch=True参数来为箱体添加一个缺口,用于表示数据的置信区间。缺口的宽度取决于数据的分布。下面是一个带有缺口的箱线图示例:
import matplotlib.pyplot as plt
import numpy as np
# 生成随机数据
np.random.seed(0)
data = np.random.randn(100)
# 绘制带有缺口的箱线图
plt.boxplot(data, notch=True)
# 添加标签和标题
plt.xlabel('Data')
plt.ylabel('Values')
plt.title('Box Plot with Notch')
# 显示图表
plt.show()
5、Matplotlib箱线图boxplot()举例横向显示
当你想要绘制横向的箱线图时,你可以使用vert=False参数将箱线图的方向设置为水平方向。这样,箱体和须将水平放置,而不是垂直放置。下面是一个横向显示的箱线图示例:
import matplotlib.pyplot as plt
import numpy as np
# 生成随机数据
np.random.seed(0)
data = np.random.randn(100)
# 绘制横向箱线图
plt.boxplot(data, vert=False)
# 添加标签和标题
plt.xlabel('Values')
plt.ylabel('Data')
plt.title('Horizontal Box Plot')
# 显示图表
plt.show()
6、Matplotlib箱线图boxplot()举例显示平均值
要在箱线图上显示平均值,你可以使用meanline=True参数来绘制平均线。下面是一个示例:
import matplotlib.pyplot as plt
import numpy as np
# 生成随机数据
np.random.seed(0)
data = np.random.randn(100)
# 绘制箱线图并显示平均值
plt.boxplot(data, meanline=True, showmeans=True)
# 添加标签和标题
plt.xlabel('Data')
plt.ylabel('Values')
plt.title('Box Plot with Mean')
# 显示图表
plt.show()
7、Matplotlib箱线图boxplot()举例隐藏异常值
要在箱线图中隐藏异常值,你可以使用showfliers=False参数。下面是一个示例:
import matplotlib.pyplot as plt
import numpy as np
# 生成随机数据
np.random.seed(0)
data = np.random.randn(100)
# 绘制箱线图并隐藏异常值
plt.boxplot(data, showfliers=False)
# 添加标签和标题
plt.xlabel('Data')
plt.ylabel('Values')
plt.title('Box Plot without Outliers')
# 显示图表
plt.show()
8、Matplotlib箱线图boxplot()举例异常值的样式
要自定义箱线图中异常值的样式,你可以使用flierprops参数来指定异常值的属性。下面是一个示例:
import matplotlib.pyplot as plt
import numpy as np
# 生成随机数据
np.random.seed(0)
data = np.random.randn(100)
outliers = [2.5, -3.8, 3.2] # 自定义异常值
# 绘制箱线图并自定义异常值样式
plt.boxplot(data, flierprops={'marker': 'x', 'markerfacecolor': 'red', 'markersize': 8, 'linestyle': 'none'},
notch=True, showfliers=True)
# 添加自定义异常值
plt.scatter(np.full(len(outliers), 1), outliers, marker='x', color='red')
# 添加标签和标题
plt.xlabel('Data')
plt.ylabel('Values')
plt.title('Box Plot with Custom Outliers')
# 显示图表
plt.show()
9、Matplotlib箱线图boxplot()举例箱子的样式
要自定义箱线图中箱子的样式,你可以使用boxprops参数来指定箱子的属性。下面是一个示例:
import matplotlib.pyplot as plt
import numpy as np
# 生成随机数据
np.random.seed(0)
data = np.random.randn(100)
# 绘制箱线图并自定义箱子样式
plt.boxplot(data, boxprops={'color': 'green', 'linewidth': 2, 'linestyle': '--'},
notch=True, showfliers=True)
# 添加标签和标题
plt.xlabel('Data')
plt.ylabel('Values')
plt.title('Box Plot with Custom Box Style')
# 显示图表
plt.show()
11、Matplotlib箱线图boxplot()举例标签说明
要为箱线图添加标签说明,你可以使用labels参数来指定每个数据组的标签。下面是一个示例:
import matplotlib.pyplot as plt
import numpy as np
# 生成随机数据
np.random.seed(0)
data1 = np.random.randn(100)
data2 = np.random.randn(100) + 2
data3 = np.random.randn(100) - 2
# 绘制多个箱线图并添加标签说明
plt.boxplot([data1, data2, data3], labels=['Group 1', 'Group 2', 'Group 3'])
# 添加标签和标题
plt.xlabel('Groups')
plt.ylabel('Values')
plt.title('Box Plot with Labels')
# 显示图表
plt.show()