发布时间: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。
Matplotlib 颜色图。
压缩低端的颜色范围。这是延伸到最小值以下的数据范围的倍数;好的值通常在 [0, 1] 中,默认为 0。
压缩高端的颜色范围。这是超出最大值的数据范围的倍数;好的值通常在 [0, 1] 中,默认为 0。
适用于每一列(axis=0 或 'index')、每一行(axis=1 或 'columns'),或使用 axis=None 一次应用于整个 DataFrame。
一个有效的二维输入DataFrame.loc[<subset>], 或者,在 1d 输入或单键的情况下,DataFrame.loc[:, <subset>]列优先级的地方,以限制data到前应用该函数。
用于确定 [0, 1] 中文本颜色的亮度阈值。促进不同背景颜色的文本可见性。如果为 0,所有文本为暗,如果为 1,则为亮,默认为 0.408。
对应于颜色图最小值的最小数据值。如果未指定,将使用数据(或 gmap)的最小值。
对应于颜色图最大值的最大数据值。如果未指定,将使用数据(或 gmap)的最大值。
用于确定背景颜色的渐变图。如果未提供,将使用行、列或框架中的基础数据。如果以 ndarray 或 list-like 的形式给出,则必须与考虑到 axis 和 subset 的基础数据具有相同的形状。如果作为 DataFrame 或 Series 给出,则考虑 axis 和 subset 必须具有相同的索引和列标签。如果提供,vmin 和 vmax 应该相对于这个梯度图给出。
当使用 low 和 high 时,如果没有给出 gmap 或由 gmap 给出,则由数据给出的梯度范围在低端通过 map.min - low * map.range 有效扩展,在高端通过map.max + high * map.range 在颜色标准化和确定之前。
如果与 vmin 和 vmax 组合,则 map.min , map.max 和 map.range 将替换为根据从 vmin 和 vmax 派生的值的值。
此方法将预选数字列并忽略非数字列,除非提供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)从 low 和 high 两端压缩颜色图
>>> df.style.background_gradient(axis=None, low=0.75, high=1.0)手动设置vmin和vmax梯度阈值
>>> 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)']... )