我的目标是获得一个 df.style ,背景渐变从红色到白色(中间颜色)到绿色。问题是我想将白色设置为值 0。因此,如果我们有一个值为 [1, 2, 3] 的列,那么如果它们是 [-3],则全部都是绿色(当然强度不同) , -2, 1] 它们都是红色的。在简历中,正值始终为绿色,负值始终为红色,非常接近 0 的值将接近白色。
这是初始代码的示例:
import pandas as pd
from matplotlib.colors import LinearSegmentedColormap
df = pd.DataFrame({'A': [-3, -1, 1.5, 2, 100], 'B': [-3, -1, 1.5, 2, -100]})
cmap = LinearSegmentedColormap.from_list('rg', ["#FF3333", "#FFFFFF", "#39B241"], N = 255)
df.style.background_gradient(cmap = cmap, axis = 0)
“A”和“B”列有异常值(一个非常大的 +++,另一个非常大 ---),因此在 A 列中,例如,我们得到红色的 1.5 和 2,这是不允许的。