pandas.io.formats.style.Styler.background_gradient#

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。

Parameters:
cmapstr 或 colormap

Matplotlib 颜色图。

lowfloat

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

highfloat

在高​​端压缩颜色范围。这是数据范围的倍数,延伸到最大值以上;通常在 [0, 1] 之间是有用的值,默认为 0。

axis{0, 1, “index”, “columns”, None}, default 0

按列(axis=0'index')、按行(axis=1'columns')或一次性应用于整个 DataFrame(axis=None)。

subset标签、类数组、IndexSlice、可选

DataFrame.loc[<subset>] 的有效二维输入,或者,在输入为一维或单个键的情况下,为 DataFrame.loc[:, <subset>],其中列优先,用于在应用函数 之前 限制 data

text_color_thresholdfloat 或 int

用于确定文本颜色的亮度阈值,范围在 [0, 1] 之间。在各种背景色下方便文本

可见性。如果为 0,所有文本均为深色;如果为

1,所有文本均为浅色,默认为 0.408。

vminfloat,可选

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

vmaxfloat,可选

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

gmaparray-like, optional

用于确定背景色的渐变图。如果未提供,将使用来自行、列或帧的底层数据。如果以 ndarray 或类列表的形式提供,则必须与底层数据具有相同的形状,并考虑 axissubset。如果以 DataFrame 或 Series 的形式提供,则必须具有相同的索引和列标签,并考虑 axissubset。如果提供了 gmap,则 vminvmax 应相对于此渐变图给出。

在 1.3.0 版本加入.

Returns:
Styler

参见

Styler.text_gradient

用渐变样式为文本着色。

Notes

当使用 lowhigh 指定渐变范围时,该范围由数据(如果未提供 gmap)或 gmap 提供,在低端处有效地扩展为 map.min - low * map.range,在高端处扩展为 map.max + high * map.range,然后再对颜色进行归一化和确定。

如果与 vminvmax 结合使用,则 map.minmap.maxmap.range 将被根据从 vminvmax 派生的值替换。

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

Examples

>>> 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)  
../../_images/bg_ax0.png

使用 axis=None 整体着色所有值

>>> df.style.background_gradient(axis=None)  
../../_images/bg_axNone.png

lowhigh 两端压缩色图

>>> df.style.background_gradient(axis=None, low=0.75, high=1.0)  
../../_images/bg_axNone_lowhigh.png

手动设置 vminvmax 渐变阈值

>>> df.style.background_gradient(axis=None, vmin=6.7, vmax=21.6)  
../../_images/bg_axNone_vminvmax.png

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

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

为数据帧设置渐变图(即 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)']
... )  
../../_images/bg_axNone_gmap.png