如何在 seaborn barplot 上显示值(附示例)


您可以使用以下函数在海洋条形图上显示值:

 def show_values (axs, orient=" v ", space=.01):
    def _single (ax):
        if orient == " v ":
            for p in ax. patches :
                _x = p. get_x () + p. get_width ()/2
                _y = p. get_y () + p. get_height () + ( p.get_height ()*0.01)
                value = ' {:.1f} '. format (e.g. get_height ())
                ax. text (_x, _y, value, ha=" center ") 
        elif orient == " h ":
            for p in ax. patches :
                _x = p. get_x () + p. get_width () + float(space)
                _y = p. get_y () + p. get_height () - (e.g. get_height ()*0.5)
                value = ' {:.1f} '. format (e.g. get_width ())
                ax. text (_x, _y, value, ha=" left ")

    if isinstance(axs, np.ndarray ):
        for idx, ax in np. ndenumerate (axs):
            _single(ax)
    else :
        _single(axs)

此函数适用于水平和垂直条形图。

以下示例展示了如何在 Seaborn“tips”数据集的实践中使用此函数:

 import seaborn as sns
import pandas as pd
import numpy as np

#load tips dataset
data = sns. load_dataset (“ tips ”)

#view first five rows
data. head ()

	total_bill tip sex smoker day time size
0 16.99 1.01 Female No Sun Dinner 2
1 10.34 1.66 Male No Sun Dinner 3
2 21.01 3.50 Male No Sun Dinner 3
3 23.68 3.31 Male No Sun Dinner 2
4 24.59 3.61 Female No Sun Dinner 4

示例 1:在垂直条形图上显示值

以下代码展示了如何在垂直条形图上显示值:

 #create vertical barplot
p = sns. barplot (x=" day ", y=" tip ", data=data, ci= None )

#show values on barplot
show_values(p)

示例 2:在水平条形图上显示值

以下代码展示了如何在水平条形图上显示值:

 #create horizontal barplot
p = sns. barplot (x=" tip ", y=" day ", data=data, ci= None )

#show values on barplot
show_values(p, " h ", space= 0 )

请注意,您使用的空间值越大,标签距离条形越远。

例如,让我们将空格从0更改为0.05

 #create horizontal barplot
p = sns. barplot (x=" tip ", y=" day ", data=data, ci= None )

#show values on barplot
show_values(p, " h ", space= 0.05 ) 

注意:要更改显示的小数位数,只需更改函数此行中的值:

 value = ' {:.1f} '. format (e.g. get_height ())

例如,将其更改为 . 1f.2f显示两位小数而不是一位。

其他资源

以下教程解释了如何在seaborn中执行其他常用功能:

如何在 Seaborn 中创建饼图
如何在 Seaborn 中创建时间序列图
如何在单个图中创建多个 Seaborn 绘图

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注