Pandas样式:设置背景渐变色
在本文中,我们将介绍如何使用Pandas样式功能,为DataFrame设置背景渐变色。
阅读更多:Pandas 教程
Pandas样式简介
Pandas是一个基于Numpy的开源Python库,为数据处理提供了高效简单的数据结构,包括Series(一维数组)和DataFrame(二维数组)等。而Pandas样式功能则是Pandas内置的非常强大的可视化工具,可以让你以非常简单的方式定制你的表格,并提供了各种美观的图形界面、颜色引用、字体控制、对表格的格式化控制等等。本文按照Pandas样式功能中的一个重要方面,即为DataFrame方格设计一个背景渐变色。
设置DataFrame的背景渐变色
在导入Pandas库和数据之后,要将渐变样式应用于DataFrame的所有单元格,我们需要将Pandas的样式属性赋值给DataFrame。最简单的做法是调用style.background_gradient()
方法:
import pandas as pd
# 读取数据
df = pd.read_csv('data.csv')
# 设置渐变色
df.style.background_gradient()
运行上述代码后,可以通过将DataFrame的每个单元格应用渐变来手动设计表格:
| | Name | Age | Grade |
|—|——–|——-|——-|
| 0 | Alice | 24 | 87.5 |
| 1 | Bob | 34 | 76.2 |
| 2 | Carol | 22 | 89.1 |
| 3 | David | 46 | 79.3 |
| 4 | Emily | 32 | 92.2 |
可以看到,渐变的背景颜色逐渐从灰色到蓝色(如果值高于中值)或从灰色到红色(如果值低于中值)。
调整颜色梯度
如果你想用自己选择的颜色,可以用low
和high
参数调整渐变色的两端颜色,如下所示:
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据
df = pd.read_csv('data.csv')
# 自定义颜色梯度
cmap = plt.get_cmap('coolwarm')
df.style.background_gradient(cmap=cmap, low=0, high=1, axis=None)
这会利用“冷暖色图”来渐变背景颜色(在灰度图调色板上,“紫-蓝-绿-黄-橙-红”是最常用的冷暖颜色)。调整颜色梯度可用於每行和每列,如下所示:
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据
df = pd.read_csv('data.csv', index_col=0)
# 自定义颜色梯度
cmap = plt.cm.Reds
df.style.background_gradient(cmap=cmap, axis=0).set_properties(**{'font-size': '10pt'})
这会使用“红色”色图在每一列中渐变,同时使字体大小为10pt:
通过设置axis
参数,你还可以使样式仅适用于DataFrame的行或列。
更多样式控制
除了渐变颜色,Pandas样式功能还提供了很多关于表格样式的灵活控制,包括字体、边框、对齐等。比如说:
# 创建样式
style = df.style
# 对齐方式
style.\
.set_table_styles([{'selector': 'th',
'props': [('background-color', '#E6E6FA')]},
{'selector': 'td',
'props': [('font-size', '14pt'),
('text-align', 'center')]},
{'selector': 'tr:nth-child(even)',
'props': [('background-color', '#F0F8FF')]},
{'selector': 'tr:nth-child(odd)',
'props': [('background-color', '#FFFFFF')]},
{'selector': 'td:first-child',
'props': [('background-color', '#D3D3D3')]},
{'selector': 'td:last-child',
'props': [('background-color', '#D3D3D3')]}])\
.highlight_max(color='green')\
.highlight_min(color='red', axis=0)\
.set_properties(**{'border': '1px solid black',
'text-align': 'center',
'font-size': '12pt',
'width': '150px',
'height': '40px'})\
.set_caption('My Styled DataFrame')
# 显示样式
style
上述代码将创建更多样式控制,设置了表头的背景颜色,字体对齐、背景色、边框、设置数值为中间对齐、设置表格的宽高等。
总结
Pandas样式功能提供了非常简单易用的的方法来对DataFrame进行颜色梯度、字体、对齐、边框等样式的设置。本文总结了如何为DataFrame设置背景渐变样式。除了上述设置外,还可以控制表格颜色,单元格宽度和高度,设置分类变量等。这些功能简单易用,可大大提高可视化数据的呈现效果和观感。