如何在 Seaborn 条形图上显示值?
在 Seaborn 的条形图中,显示数值变量的平均值,而误差线则表示平均值周围的可能值范围。将值与 0 进行比较时,它很有用。在 Python 中,我们有一些内置函数,如 barplot()、enumerate() 和 text(),可用于在 Seaborn 条形图上显示值。例如,我们可以使用条形图比较各种产品的平均销售额或不同教室的学生的平均测试结果。
语法
示例中使用了以下语法 -
barplot()
这是 Python 中的内置函数,用于比较类别之间的相似性。它可以用来比较不同组的平均值。
enumerate()
这是Python内置函数,为iterable添加一个计数器并返回枚举对象。此函数接受两个参数-一个iterable和一个起始索引(默认值为0)。
show()
show方法用在程序的末尾,根据问题陈述返回图形的结果。
示例1
在下面的例子中,我们将在条形图上方显示值。以名为seaborn和matplotlib.pyplot的必要模块开始程序,并分别获取参考对象sns和plt。然后它定义两个轴-x_ax和y_ax来填充数据。接下来,使用内置函数 barplot() 创建条形图并将其存储在变量 ax 中。使用 enumerate() 迭代 y 值并在条形上方添加值,并使用 ax.text() 向图中添加文本。最后,使用 show() 方法返回结果。
# 在条形图上方显示值 import seaborn as sns import matplotlib.pyplot as plt # 数据 x_ax = ['A', 'B', 'C', 'D', 'E'] y_ax = [4, 1, 4.5, 2, 3] # 创建条形图 ax = sns.barplot(x=x_ax, y=y_ax) # 在条形图上方添加值 for i, v in enumerate(y): ax.text(i, v + 0.2, str(v), ha='center') plt.show()
输出
示例 2
在下面的示例中,我们将通过导入模块 seaborn 和 matplotlib.pyplot 来启动程序,并分别获取引用对象 sns 和 plt。然后使用 sns.barplot() 创建一个条形图,其中 x_ax 和 y_ax 分别作为 x 轴和 y 轴的参数。接下来,使用带有 enumerate(y) 的 for 循环遍历 y 轴数据,以获取列表中每个元素的索引 i 和值 v。然后使用 ax 对象的 text() 方法在条形图内添加文本。第一个参数是文本的 x 坐标,设置为 i 以与每个条形图的中心对齐。
第二个参数是文本的 y 坐标,设置为 v/2 以将文本定位在每个条形图的中间。第三个参数是要显示的文本,设置为 str(v) 以将每个条形图的值显示为字符串。ha 参数设置为"center"以将文本水平对齐到每个条形图的中心。color 参数设置为"white"以使文本变为白色。最后,我们在内置方法 show() 的帮助下得到了结果。
# 显示条形图内的值 import seaborn as sns import matplotlib.pyplot as plt # 数据 x_ax = ['A', 'B', 'C', 'D', 'E'] y_ax = [3, 1, 4, 8, 2] # 创建条形图 ax = sns.barplot(x=x_ax, y=y_ax) # 在条形图内添加值 for i, v in enumerate(y): ax.text(i, v/2, str(v), ha='center', color='white') plt.show()
输出
示例 3
在下面的示例中,我们将使用自定义格式显示值。首先导入必要的模块 - seaborn 用于创建条形图,matplotlib.pyplot 用于显示图。然后定义 x 轴和 y 轴的数据。接下来,使用 sns.barplot() 创建条形图,其中 x 和 y 分别作为 x 轴和 y 轴的参数。然后使用 for 循环遍历 y 轴数据,并使用 ax 对象的 text() 方法在条形图内添加自定义格式的文本。最后,使用 plt.show() 显示图表。
# 使用自定义格式显示值 import seaborn as sns import matplotlib.pyplot as plt # 数据 x = ['A', 'B', 'C', 'D'] y = [0.3, 0.1, 0.2, 1] # 创建条形图 ax = sns.barplot(x=x, y=y) # 使用自定义格式添加值 for i, v in enumerate(y): ax.text(i, v + 0.02, f'{v:.0%}', ha='center') plt.show()
输出
示例 4
在下面的示例中,我们将使用自定义颜色和字体大小显示值。我们首先会提到必要的模块 - seaborn 和 matplotlib.pyplot。然后使用内置方法 barplot() 创建 x 轴和 y 轴的数据,并根据轴设置条形图。然后使用 for 循环遍历 y 轴数据,并使用 ax 对象的 text() 方法在条形图内添加文本,并使用自定义颜色和字体大小。最后,使用 show() 显示图表。
# 使用自定义颜色和字体大小显示值 import seaborn as sns import matplotlib.pyplot as plt # 数据 x_axes = ['A', 'B', 'C'] y_axes = [3, 1, 4] # 创建条形图 ax = sns.barplot(x=x_axes, y=y_axes) # 使用自定义颜色和字体大小添加值 for i, v in enumerate(y): ax.text(i, v + 0.2, str(v), ha='center', color='#ab09eb', fontsize=21) plt.show()
输出
示例 5
在下面的示例中,使用 seaborn 和 matplotlib 模块,此程序生成条形图并以自定义位置和旋转显示条形内的值。这些值旋转了 45 度,并位于每个条形图中心的左侧。
#显示具有自定义位置和旋转的值 import seaborn as sns import matplotlib.pyplot as plt # 数据 x = ['A', 'B', 'C'] y = [3, 1, 4] # 创建条形图 ax = sns.barplot(x=x, y=y) # 添加具有自定义位置和旋转的值 for i, v in enumerate(y): ax.text(i - 0.15, v + 0.2, str(v), ha='center', rotation=45) plt.show()
输出
结论
我们讨论了表示 Seaborn Barplot 的不同方法。我们看到了 enumerate() 函数如何帮助添加计数器进行迭代。然后我们看到了使用名为 ha、rotation、color 等的引用来格式化值。这种类型的图表通常用于数据科学和数据分析领域。