Matplotlib Box Plots
在数据分析和统计领域,箱形图(Box Plot)是一种非常有效的可视化工具,用于展示数据的分布情况。它可以快速地给出数据的中位数、四分位数、异常值等统计信息。本文将详细介绍如何使用Matplotlib库来创建箱形图,并通过10-20个示例代码展示不同的箱形图绘制技巧。
1. 基础箱形图
首先,我们从最基础的箱形图绘制开始。在Matplotlib中,可以使用boxplot
函数来创建箱形图。
示例代码 1:绘制单个箱形图
import matplotlib.pyplot as plt
import numpy as np
data = np.random.normal(loc=0, scale=1, size=100)
plt.boxplot(data)
plt.title("基础箱形图 - how2matplotlib.com")
plt.show()
Output:
示例代码 2:绘制多个箱形图
import matplotlib.pyplot as plt
import numpy as np
data1 = np.random.normal(loc=0, scale=1, size=100)
data2 = np.random.normal(loc=1, scale=2, size=100)
data = [data1, data2]
plt.boxplot(data)
plt.title("多个箱形图 - how2matplotlib.com")
plt.show()
Output:
2. 自定义箱形图
Matplotlib允许用户自定义箱形图的各个组成部分,如箱体的颜色、边界线的样式等。
示例代码 3:自定义箱体颜色
import matplotlib.pyplot as plt
import numpy as np
data = np.random.normal(loc=0, scale=1, size=100)
plt.boxplot(data, boxprops=dict(color="blue"))
plt.title("自定义箱体颜色 - how2matplotlib.com")
plt.show()
Output:
示例代码 4:自定义异常值标记
import matplotlib.pyplot as plt
import numpy as np
data = np.random.normal(loc=0, scale=1, size=100)
plt.boxplot(data, flierprops=dict(marker='o', color='red', markersize=5))
plt.title("自定义异常值标记 - how2matplotlib.com")
plt.show()
Output:
3. 水平箱形图
除了默认的垂直箱形图,Matplotlib也支持绘制水平箱形图。
示例代码 5:绘制水平箱形图
import matplotlib.pyplot as plt
import numpy as np
data = np.random.normal(loc=0, scale=1, size=100)
plt.boxplot(data, vert=False)
plt.title("水平箱形图 - how2matplotlib.com")
plt.show()
Output:
4. 显示异常值
在箱形图中,异常值的显示是非常重要的一个功能,它帮助我们识别数据中的离群点。
示例代码 6:显示异常值
import matplotlib.pyplot as plt
import numpy as np
data = np.random.normal(loc=0, scale=1, size=100)
plt.boxplot(data, showfliers=True)
plt.title("显示异常值 - how2matplotlib.com")
plt.show()
Output:
5. 调整箱形图的宽度
有时候,为了更好地展示数据,我们需要调整箱形图的宽度。
示例代码 7:调整箱形图的宽度
import matplotlib.pyplot as plt
import numpy as np
data = np.random.normal(loc=0, scale=1, size=100)
plt.boxplot(data, widths=0.5)
plt.title("调整箱形图的宽度 - how2matplotlib.com")
plt.show()
Output:
6. 分组箱形图
当我们需要比较不同组之间的数据分布时,分组箱形图非常有用。
示例代码 8:绘制分组箱形图
import matplotlib.pyplot as plt
import numpy as np
data1 = np.random.normal(loc=0, scale=1, size=100)
data2 = np.random.normal(loc=1, scale=2, size=100)
data3 = np.random.normal(loc=2, scale=1.5, size=100)
data = [data1, data2, data3]
plt.boxplot(data, positions=[1, 2, 4])
plt.title("分组箱形图 - how2matplotlib.com")
plt.show()
Output:
7. 带有填充色的箱形图
我们可以给箱形图添加填充色,以增强视觉效果。
示例代码 9:带有填充色的箱形图
import matplotlib.pyplot as plt
import numpy as np
data = np.random.normal(loc=0, scale=1, size=100)
plt.boxplot(data, patch_artist=True, boxprops=dict(facecolor="lightblue"))
plt.title("带有填充色的箱形图 - how2matplotlib.com")
plt.show()
Output:
8. 自定义异常值处理
在某些情况下,我们可能需要自定义异常值的处理方式。
示例代码 10:自定义异常值处理
import matplotlib.pyplot as plt
import numpy as np
data = np.random.normal(loc=0, scale=1, size=100)
plt.boxplot(data, flierprops=dict(marker='x', color='green'))
plt.title("自定义异常值处理 - how2matplotlib.com")
plt.show()
Output:
结论
通过上述示例代码,我们可以看到Matplotlib提供了丰富的功能来创建和自定义箱形图。无论是基础的箱形图绘制,还是更高级的自定义选项,Matplotlib都能够满足我们的需求。