python - Pandas Seaborn 发散调色板 - 使 0 中性和正绿色和负红色
问题描述
在 Python Pandas 中,我想创建一个表格,在负数时将背景渐变显示为红色,在正数时显示为绿色,同时 0 为白色。我想在 Seaborn 中使用 Diverging_palette,所以有不同的绿色和红色深浅。
我有一个数据框,我们称它为我制作的数据透视表。
然后我创建表格的样式:
cm = sns.diverging_palette(12.9, 126.8, s=100, l=53, center="light", as_cmap=True)
我正在尝试根据我的标准自定义背景渐变:
def background_gradient(s, m, M, cmap=cm, low=0, high=0):
rng = M - m
norm = colors.Normalize(m - (rng * low), M + (rng * high))
normed = norm(s.values)
c = [colors.rgb2hex(x) for x in plt.cm.get_cmap(cmap)(normed)]
return ['background-color: %s' % color for color in c]
htlm = A.style.apply(background_gradient cmap=cm) \
.set_table_styles(styles).render()
`return htlm`
但是,输出将接近 0 的数字显示为错误的颜色(即,一些正数为红色,反之亦然)。此外,当我希望它们是中性(白色)时,所有 0 都是红色的。
如何自定义它,使所有正数都是不同的绿色(数字越大,绿色越深),负数为红色?b 有没有办法将 0 设置为“中性”?
解决方案
推荐阅读
- vue.js - 没有在 Nuxt + Vue 项目中加载 Markdown 样式
- python - 如何删除列表 python 中的 \t\n\r 进行网络抓取?
- typescript - 在 Typescript 中找不到名称“进程”错误并且没有 tsconfig 文件
- c - C Unix msgsnd没有发送一些消息
- java - 不要根据条件返回空元素 - Java Srinboot
- sql - BigQuery:模糊连接两个表
- angular - Angular 中的子组件在 Storybook 中无法识别,同时与 ng serve 完美配合
- html - 借助 html 中的表格创建图片库
- c# - 我无法在 C# 中使用 IComparable 接口比较两个对象
- r - 自动命名表并导出为图像?