Seaborn 如何在条形图上显示数值

Seaborn 如何在条形图上显示数值

在Seaborn的条形图中,数值变量的平均值显示出来,而误差线表示平均值周围可能的值范围。当将数值与0进行比较时,这很有帮助。在Python中,我们有一些内置的函数,如barplot()、enumerate()和text(),可以用于在Seaborn的条形图上显示数值。例如,我们可以使用条形图比较各种产品的平均销售额或各个教室的学生的平均考试成绩。

语法

示例中使用以下语法-

barplot()

这是Python中的一个内置函数,用于比较不同类别之间的相似性。它可以用来比较不同组的平均值。

enumerate()

这是Python中的内置函数,它可以将一个计数器添加到可迭代对象并返回枚举对象。该函数接受两个参数-一个可迭代对象和一个起始索引(默认值为0)。

show()

show()方法用于程序结束时根据问题陈述返回图形结果。

示例1

在下面的示例中,我们将在条形图上方显示数值。首先使用名为seaborn和matplotlib.pyplot的必要模块,并分别使用引用对象sns和plt。然后它定义了两个轴-x_ax和y_ax来填充数据。接下来,使用内置函数barplot()创建条形图,并将其存储在变量ax中。通过使用enumerate()和ax.text()向绘图中的每个y值添加条形图上方的数值。最后,使用show()方法返回结果。

# Show values above bars
import seaborn as sns
import matplotlib.pyplot as plt

# Data
x_ax = ['A', 'B', 'C', 'D', 'E']
y_ax = [4, 1, 4.5, 2, 3]

# Create a barplot
ax = sns.barplot(x=x_ax, y=y_ax)

# Add values above bars
for i, v in enumerate(y):
   ax.text(i, v + 0.2, str(v), ha='center')
plt.show()

输出

Seaborn 如何在条形图上显示数值

示例2

在以下示例中,我们将通过引入模块seaborn和matplotlib.pyplot并分别引用对象sns和plt来启动程序。然后使用sns.barplot()创建一个条形图,其中x_ax和y_ax分别作为x轴和y轴的参数。接下来,使用for循环和enumerate(y)迭代y轴数据,以获取列表中每个元素的索引i和值v。然后使用ax对象的text()方法在柱状图内部添加文本。第一个参数是文本的x坐标,设置为i以使其与每个柱状图的中心对齐。

第二个参数是文本的y坐标,设置为v/2以使文本位于每个柱状图的中间。第三个参数是要显示的文本,设置为str(v)以将每个柱状图的值显示为字符串。ha参数设置为’center’,使文本在每个柱状图的中心水平对齐。color参数设置为’white’,使文本为白色。最后,通过内置方法show()获得结果。

# Show values inside bars
import seaborn as sns
import matplotlib.pyplot as plt

# Data
x_ax = ['A', 'B', 'C', 'D', 'E']
y_ax = [3, 1, 4, 8, 2]

# Create a barplot
ax = sns.barplot(x=x_ax, y=y_ax)
# Add values inside bars
for i, v in enumerate(y):
   ax.text(i, v/2, str(v), ha='center', color='white')
plt.show()

输出

Seaborn 如何在条形图上显示数值

示例3

在下面的示例中,我们将展示使用自定义格式化的值。通过导入必要的模块(seaborn用于创建条形图,matplotlib.pyplot用于展示图形)开始程序。然后定义x轴和y轴的数据。接下来,使用sns.barplot()创建一个条形图,x和y分别作为x轴和y轴参数。然后使用for循环遍历y轴数据,并使用ax对象的text()方法添加自定义格式化的文本到每个条形图内。最后,使用plt.show()显示图形。

# Show values with custom formatting
import seaborn as sns
import matplotlib.pyplot as plt

# Data
x = ['A', 'B', 'C', 'D']
y = [0.3, 0.1, 0.2, 1]

# Create a barplot
ax = sns.barplot(x=x, y=y)

# Add values with custom formatting
for i, v in enumerate(y):
   ax.text(i, v + 0.02, f'{v:.0%}', ha='center')

plt.show()

输出

Seaborn 如何在条形图上显示数值

示例4

在以下示例中,我们将展示具有自定义颜色和字体大小的值。我们首先提及必要的模块- seaborn 和 matplotlib.pyplot。然后创建 x 轴和 y 轴的数据,并根据坐标轴设置条形图,使用内置的 barplot() 方法。然后使用 for 循环迭代 y 轴数据,并使用 ax 对象的 text() 方法在条形图内部添加文本,同时自定义颜色和字体大小。最后,使用 show() 方法显示图表。

# Show values with custom color and font size
import seaborn as sns
import matplotlib.pyplot as plt

# Data
x_axes = ['A', 'B', 'C']
y_axes = [3, 1, 4]

# Create a barplot
ax = sns.barplot(x=x_axes, y=y_axes)

# Add values with custom color and font size
for i, v in enumerate(y):
   ax.text(i, v + 0.2, str(v), ha='center', color='#ab09eb', fontsize=21)

plt.show()

输出

Seaborn 如何在条形图上显示数值

示例5

在下面的示例中,使用seaborn和matplotlib模块,此程序生成一个条形图,并显示具有自定义位置和旋转的值。这些值被旋转45度,并位于每个条的中心稍微向左的位置。

#Show values with custom position and rotation
import seaborn as sns
import matplotlib.pyplot as plt

# Data
x = ['A', 'B', 'C']
y = [3, 1, 4]

# Create a barplot
ax = sns.barplot(x=x, y=y)

# Add values with custom position and rotation
for i, v in enumerate(y):
   ax.text(i - 0.15, v + 0.2, str(v), ha='center', rotation=45)

plt.show()

输出

Seaborn 如何在条形图上显示数值

结论

我们讨论了表示Seaborn条形图的不同方法。我们看到enumerate()函数如何帮助我们添加一个计数器进行迭代。然后,我们看到了使用命名为ha、rotation、color等的引用来格式化值。这种类型的图表通常在数据科学和数据分析领域中使用。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程