如何在Python的boxplot 上显示文本?
箱线图是一种重要的图形图,可用于获取以数字形式呈现的数据摘要。该图可以为我们提供有关统计度量的信息,例如数值数据的百分位数、中位数、最小值和最大值。在箱线图中,穿过箱体中心的线代表中值。在本文中,我们将学习如何添加箱线图并在箱线图上显示文本。
首先,要创建箱线图,我们将使用 seaborn 库,并在箱线图上显示文本,我们将使用 matplotlib.pyplot 类中可用的 text() 方法。 text() 方法使我们能够在图上写入字符串并为其添加自定义。
让我们首先绘制一个简单的箱线图并在其上添加一些文本。
Python
# import modules
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
plt.style.use('seaborn')
# Reading the dataset
data = pd.read_csv('Dataset.csv')
print("The shape of the dataframe is: ",data.shape)
Python
# display data
print(data.head())
Python
# depict box plot visualization
plt.figure(figsize=(10, 6))
sns.boxplot(data['Width (in cm)'])
plt.text(75, 0.07, 'Outliers beyond beyond 75% value', fontsize=14)
plt.show()
Python
# add text
plt.figure(figsize=(10, 6))
sns.boxplot(data['Height (in cm)'])
plt.text(3, 0.07,
'Points beyond 25% value',
bbox=dict(facecolor='red',
alpha=0.5),
fontsize=12)
plt.text(95, 0.07,
'Points beyond beyond 75% value',
bbox=dict(facecolor='pink',
alpha=0.5),
horizontalalignment='right',
fontsize=12)
plt.show()
输出:
The shape of the dataframe is: (20, 3)
打印数据集中的前五行:
Python
# display data
print(data.head())
输出:
Python
# depict box plot visualization
plt.figure(figsize=(10, 6))
sns.boxplot(data['Width (in cm)'])
plt.text(75, 0.07, 'Outliers beyond beyond 75% value', fontsize=14)
plt.show()
输出:
我们可以从上面编写的代码中观察到, plt.text()方法用于显示我们想要的所需文本。它需要三个强制性的位置参数:
Syntax: plt.text(x, y, text)
Parameters:
- x-coordinate: denotes the location of the text on x-axis
- y-coordinate: denotes the location of text on y-axis
- text: denotes the string that we want to insert.
为了使我们的箱线图看起来更吸引人,我们可以传递许多其他可选参数来格式化下一个图中已讨论的文本。
Python
# add text
plt.figure(figsize=(10, 6))
sns.boxplot(data['Height (in cm)'])
plt.text(3, 0.07,
'Points beyond 25% value',
bbox=dict(facecolor='red',
alpha=0.5),
fontsize=12)
plt.text(95, 0.07,
'Points beyond beyond 75% value',
bbox=dict(facecolor='pink',
alpha=0.5),
horizontalalignment='right',
fontsize=12)
plt.show()
输出:
从图中可以看出,我们在文本周围添加了一个漂亮的边界框,并在文本上添加了颜色,这可以通过在 plt.text() 方法中传递可选参数来完成,例如:
- bbox:用于在文本周围创建一个边界框,它本身接受一个字典来为框添加颜色并设置颜色的不透明度。
- fontsize:用于设置我们字体的大小。
- 水平对齐或 ha:设置文本的水平对齐方式。
- verticalalignment 或 va:设置文本的垂直对齐方式。
从该方法的官方文档中可以看出还有很多其他的。