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。
- 参数:
- cmapstr 或 colormap
Matplotlib 色图。
- 低float
在低端压缩颜色范围。这是数据范围以下扩展的倍数;通常好的值在 [0, 1] 之间,默认为 0。
- 高float
在高处压缩颜色范围。这是数据范围在最大值之上扩展的倍数;通常好的值在 [0, 1] 之间,默认为 0。
- 轴{0, 1, “index”, “columns”, None}, 默认 0
应用于每一列(
axis=0
或'index'
),应用于每一行(axis=1
或'columns'
),或一次性应用于整个 DataFrame(axis=None
)。- 子集label, 类似数组, IndexSlice, 可选
一个有效的 2d 输入到 DataFrame.loc[<subset>],或者,在 1d 输入或单个键的情况下,到 DataFrame.loc[:, <subset>],其中列优先,以限制
data
在应用函数 之前。- text_color_threshold浮点数或整数
亮度阈值用于确定 [0, 1] 范围内的文本颜色。有助于文本
在不同背景颜色下的可见性。如果为0,所有文本都是深色的。
light 如果为 1,默认为 0.408。
- vmin浮点数, 可选
对应于色标最小值的最小数据值。如果未指定,将使用数据(或 gmap)的最小值。
- vmax浮点数, 可选
对应于色标最大值的最大数据值。如果未指定,将使用数据(或 gmap)的最大值。
- gmap类似数组,可选
用于确定背景颜色的渐变图。如果未提供,将使用来自行、列或框架的基础数据。如果以 ndarray 或类似列表的形式给出,则必须与考虑
axis
和subset
的基础数据形状相同。如果以 DataFrame 或 Series 形式给出,则必须具有相同的索引和列标签,考虑axis
和subset
。如果提供,vmin
和vmax
应相对于此渐变图给出。Added in version 1.3.0.
- 返回:
- Styler
参见
Styler.text_gradient
以渐变样式为文本着色。
注释
当使用
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)'] ... )