Python pandas.io.formats.style.Styler.background_gradient实例讲解

发布时间:2025-12-09 11:47:02 浏览次数:1

用法:

Styler.background_gradient(cmap='PuBu', low=0, high=0, axis=0, subset=None, text_color_threshold=0.408, vmin=None, vmax=None, gmap=None)

以渐变样式为背景着色。

背景颜色根据每一列、每一行或每一帧中的数据,或由给定的梯度图确定。需要 matplotlib。

参数:

cmap:str 或颜色图

Matplotlib 颜色图。

low:浮点数

压缩低端的颜色范围。这是延伸到最小值以下的数据范围的倍数;好的值通常在 [0, 1] 中,默认为 0。

high:浮点数

压缩高端的颜色范围。这是超出最大值的数据范围的倍数;好的值通常在 [0, 1] 中,默认为 0。

axis:{0 或 ‘index’,1 或 ‘columns’,无},默认 0

适用于每一列(axis=0'index')、每一行(axis=1'columns'),或使用 axis=None 一次应用于整个 DataFrame。

subset:标签,array-like,IndexSlice,可选

一个有效的二维输入DataFrame.loc[<subset>], 或者,在 1d 输入或单键的情况下,DataFrame.loc[:, <subset>]列优先级的地方,以限制data应用该函数。

text_color_threshold:浮点数或整数

用于确定 [0, 1] 中文本颜色的亮度阈值。促进不同背景颜色的文本可见性。如果为 0,所有文本为暗,如果为 1,则为亮,默认为 0.408。

vmin:浮点数,可选

对应于颜色图最小值的最小数据值。如果未指定,将使用数据(或 gmap)的最小值。

vmax:浮点数,可选

对应于颜色图最大值的最大数据值。如果未指定,将使用数据(或 gmap)的最大值。

gmap:array-like,可选

用于确定背景颜色的渐变图。如果未提供,将使用行、列或框架中的基础数据。如果以 ndarray 或 list-like 的形式给出,则必须与考虑到 axissubset 的基础数据具有相同的形状。如果作为 DataFrame 或 Series 给出,则考虑 axissubset 必须具有相同的索引和列标签。如果提供,vminvmax 应该相对于这个梯度图给出。

返回:

self:造型器

注意:

当使用 lowhigh 时,如果没有给出 gmap 或由 gmap 给出,则由数据给出的梯度范围在低端通过 map.min - low * map.range 有效扩展,在高端通过map.max + high * map.range 在颜色标准化和确定之前。

如果与 vminvmax 组合,则 map.min , map.maxmap.range 将替换为根据从 vminvmax 派生的值的值。

此方法将预选数字列并忽略非数字列,除非提供gmap,在这种情况下不会发生预选。

例子:

>>> df = pd.DataFrame(columns=["City", "Temp (c)", "Rain (mm)", "Wind (m/s)"],...                   data=[["Stockholm", 21.6, 5.0, 3.2],...                         ["Oslo", 22.4, 13.3, 3.1],...                         ["Copenhagen", 24.5, 0.0, 6.7]])

使用 axis=0 按列着色值,预选数字列

>>> df.style.background_gradient(axis=0)

使用 axis=None 共同对所有值进行着色

>>> df.style.background_gradient(axis=None)

lowhigh 两端压缩颜色图

>>> df.style.background_gradient(axis=None, low=0.75, high=1.0)

手动设置vminvmax梯度阈值

>>> df.style.background_gradient(axis=None, vmin=6.7, vmax=21.6)

设置 gmap 并使用另一个 cmap 应用于所有列

>>> df.style.background_gradient(axis=0, gmap=df['Temp (c)'], cmap='YlOrRd')...

为数据帧设置梯度图(即 axis=None ),我们需要明确声明 subset 以匹配 gmap 形状

>>> gmap = np.array([[1,2,3], [2,3,4], [3,4,5]])>>> df.style.background_gradient(axis=None, gmap=gmap,...     cmap='YlOrRd', subset=['Temp (c)', 'Rain (mm)', 'Wind (m/s)']... )
STYLE.BACKGROUND
需要做网站?需要网络推广?欢迎咨询客户经理 13272073477