pandas.io.formats.style.Styler.text_gradient#
- Styler.text_gradient(cmap='PuBu', low=0, high=0, axis=0, subset=None, 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。- vminfloat,可选
对应于颜色图最小值的最小数据值。如果未指定,将使用数据的最小值(或 gmap)。
- vmaxfloat,可选
对应于颜色图最大值的最大数据值。如果未指定,将使用数据的最大值(或 gmap)。
- gmaparray-like, optional
用于确定文字颜色的渐变图。如果未提供,将使用来自行、列或框架的底层数据。如果以 ndarray 或类列表的形式提供,则其形状应与底层数据一致,同时考虑
axis和subset。如果以 DataFrame 或 Series 的形式提供,则应在考虑axis和subset后具有相同的索引和列标签。如果提供,vmin和vmax应相对于此渐变图进行设置。在 1.3.0 版本加入.
- Returns:
- Styler
参见
Styler.background_gradient在背景中应用渐变样式。
Notes
当使用
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,在这种情况下不会发生预选择。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.text_gradient(axis=0)
使用
axis=None整体着色所有值>>> df.style.text_gradient(axis=None)
从
low和high两端压缩色图>>> df.style.text_gradient(axis=None, low=0.75, high=1.0)
手动设置
vmin和vmax渐变阈值>>> df.style.text_gradient(axis=None, vmin=6.7, vmax=21.6)
设置一个
gmap并使用另一个cmap应用于所有列>>> df.style.text_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.text_gradient(axis=None, gmap=gmap, ... cmap='YlOrRd', subset=['Temp (c)', 'Rain (mm)', 'Wind (m/s)'] ... )