我有pandas数据框,我想根据绝对值给出背景渐变颜色。想象一下,我的期望值是数据框中A列的6。随着数字从期望值变化,背景渐变颜色在两个方向上都以绝对值相同(无论正向还是负向)变化。
以下帖子关闭了我想要的内容,但是这些颜色不考虑绝对值。熊猫样式背景渐变,包括行和列,还有熊猫文件http://pandas.pydata.org/pandas-docs/stable/user_guide/style.html
我创建了最小代码:
import pandas as pd
colum1 = [-1,0,1,2,3,4,5,6,7,8,9,10,11,12]
df = pd.DataFrame(data=colum1,columns=["A"])
我已经在Excel中将期望的输出创建为图像。我想从代码中获得类似的输出。绝对值改变背景渐变
我面临着类似的任务,经过一番“研究”,我找到了解决方案。
from matplotlib import colors
import seaborn as sns
def b_g(s):
cm=sns.light_palette("red", as_cmap=True)
max_val = max(s.max(), abs(s.min()))
norm = colors.Normalize(0,max_val)
normed = norm(abs(s.values))
c = [colors.rgb2hex(x) for x in plt.cm.get_cmap(cm)(normed)]
return ['background-color: %s' % color for color in c]
b_g函数可让您根据数据框数据生成自定义的colors_map,并cm=sns.light_palette("red", as_cmap=True)
有助于自定义颜色。
在数据框上应用此功能的过程如下:
dataframe.style.apply(b_g)
这里的技巧是在使用abs()函数计算来自数据帧的数据的标准值时。结果示例
文档上的链接:https : //seaborn.pydata.org/generated/seaborn.light_palette.html https://pandas.pydata.org/pandas-docs/version/0.18/style.html
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句