Pandas样式:设置背景渐变色

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 |
可以看到,渐变的背景颜色逐渐从灰色到蓝色(如果值高于中值)或从灰色到红色(如果值低于中值)。

调整颜色梯度

如果你想用自己选择的颜色,可以用lowhigh参数调整渐变色的两端颜色,如下所示:

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设置背景渐变样式。除了上述设置外,还可以控制表格颜色,单元格宽度和高度,设置分类变量等。这些功能简单易用,可大大提高可视化数据的呈现效果和观感。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程