如何在 Python 中的箱线图上显示文本?
箱线图,也称为盒须图,是一种数据集的图形表示,显示了数据的中间值、四分位数和异常值。盒子表示四分位距 (IQR),即数据第 25 个百分位数和第 75 个百分位数之间的范围。中位数显示为盒子内的一条线。须线从盒子延伸,显示数据的范围,不包括异常值。异常值是指超出须线范围的数据点,通常显示为单个点或星号。箱线图可用于总结数据集的分布并识别任何异常值或偏度。它们通常用于统计学、数据分析和机器学习。
Matplotlib 是一个功能强大的 Python 绘图库,允许用户在 Python 中创建各种静态、交互式和动画可视化。它提供了对图表或图形的各个元素的低级控制,并且高度可定制。Seaborn 库建立在 Matplotlib 之上,并添加了更多功能。它提供了一个更简洁、更用户友好的 API,用于在 Python 中创建统计可视化,重点是探索变量之间的关系和显示数据的分布。
借助 Seaborn 的各种预制主题和配色方案,可以轻松制作外观精致的图表。这两个库都提供了创建箱线图的功能,箱线图可用于可视化数据的分布,以及识别数据中的异常值和偏度。
语法
要在 Python 中的箱线图上显示文本,您需要遵循以下语法:
matplotlib.pyplot.text(x, y, text)
matplotlib.pyplot.text(x, y, text) 是 Matplotlib Python 库中的一个函数,它在指定的 x 和 y 坐标处向绘图添加文本。
该函数接受三个参数:放置文本的 x 和 y 坐标,以及 text,即在绘图上显示的实际文本。默认情况下,文本相对于指定的坐标左对齐并在垂直方向上居中。
示例
代码导入了必要的库,例如 pandas、matplotlib、seaborn 和 numpy。它将绘图的样式设置为“seaborn”。然后,它创建了一个具有形状 (25,4) 的随机值的 DataFrame,并将列名分配为“A”、“B”、“C”和“D”。
然后使用 matplotlib 创建了一个大小为 (10,5) 的图形。为 DataFrame 的“B”列生成了一个箱线图,并可以选择水平显示绘图。
使用 matplotlib.pyplot.text() 函数向绘图添加了一个文本框,文本为“Boxplot”,字体大小为 18,字体粗细为粗体。该函数可以接受许多可选参数,例如颜色、alpha、背景颜色、bbox、clip_box、clip_on、clip_path、fontfamily、fontname、fontproperties、fontstyle、fontvariant、fontweight、horizontalalignment、label、linespacing、multialignment、name、path_effects、picker、position、rotation、rotation_mode、size、sketch_params、snap、text、transform、url、usetex、verticalalignment、visible、wrap、x、y、zorder 等。
bbox 参数定义了围绕文本的框的属性,包括浅绿色 facecolor、10 的填充和 0.5 的 alpha。最后,使用 plt.show() 显示绘图。
import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import numpy as np plt.style.use('seaborn') df = pd.DataFrame(np.random.rand(25, 4), columns=['A', 'B', 'C', 'D']) plt.figure(figsize=(10, 5)) plt.boxplot(df['B'], vert=False) plt.text(0.3, 0.7, 'Boxplot', fontsize=18, fontweight='bold', bbox={'facecolor': 'lightgreen', 'pad': 10, 'alpha': 0.5}) plt.show()
输出
示例
在此代码中,我们导入了 pandas、numpy、matplotlib.pyplot 和 seaborn。我们将绘图的样式设置为“seaborn”。我们使用 numpy 创建了一个包含 25 行 4 列的 DataFrame,并将其标记为 A、B、C 和 D。
接下来,我们使用 plt.figure() 创建了一个大小为 10x5 的图形。我们通过调用 plt.boxplot(df['A'], vert=False) 创建了 DataFrame 中“A”列的数据的箱线图。这创建了“A”列的水平箱线图,并将“vert”参数设置为 False。
使用 plt.text() 向绘图添加了文本,其中我们使用 x 和 y 参数指定了文本的位置,要显示的文本、字体大小、字体粗细、文本颜色、alpha 水平和背景颜色。我们将要显示的文本设置为位置 (0.7, 1.4),文本为“Boxplot”,字体大小为 18,字体粗细设置为粗体,文本颜色设置为红色,alpha 水平设置为 0.5,背景颜色设置为黄色。
最后,我们使用 plt.show() 显示了绘图。
import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import numpy as np plt.style.use('seaborn') df = pd.DataFrame(np.random.rand(25, 4), columns=['A', 'B', 'C', 'D']) plt.figure(figsize=(10, 5)) plt.boxplot(df['A'], vert=False) plt.text(0.7, 1.4, 'Boxplot', fontsize=18, fontweight='bold', color='red', alpha=0.5, backgroundcolor='yellow') plt.show()
输出
结论
我们学习了如何在 Python 中的箱线图上显示文本。在箱线图上显示文本对于提供有关显示分布的其他信息可能很有优势。文本可用于标记绘图、突出显示关键特征(如异常值)或提供上下文信息以帮助解释。此外,标记异常值或极值可以帮助引起对这些点的注意,并可能提供对数据的见解。总的来说,在箱线图上显示文本可以提高可视化的清晰度和有效性,以便于数据交流和解释。