数据可视化:Excel表格格式化与R语言绘图实战
立即解锁
发布时间: 2025-09-03 00:35:22 阅读量: 9 订阅数: 17 AIGC 

# 数据可视化:Excel 表格格式化与 R 语言绘图实战
## 1. Excel 表格格式化基础
### 1.1 条件格式概述
条件格式是 Excel 中一项强大的功能,它能根据特定条件自动对单元格应用格式。通过条件格式,我们可以直观地突出重要数据、识别趋势,使 Excel 表格更具交互性。借助 openpyxl 库,我们可以在 Python 中实现条件格式的设置。以下是使用 openpyxl 进行条件格式设置的具体步骤:
1. 从 openpyxl 导入所需模块,并将数据加载到工作簿对象中。
2. 使用 openpyxl.formatting.rule 创建条件格式规则。
3. 定义规则的条件,例如根据单元格值、文本或日期标准应用样式。
4. 使用 openpyxl.worksheet.conditional.ConditionalFormatting.add() 将规则应用到所需的单元格范围。
### 1.2 条件格式代码示例
以下是一个使用 Python 实现条件格式的代码示例:
```python
import pandas as pd
import openpyxl
from openpyxl.formatting.rule import ColorScaleRule, CellIsRule
# 创建示例数据
data = {'Name': ['John', 'Alice', 'Michael', 'Emily'],
'Age': [25, 30, 22, 28],
'City': ['New York', 'London', 'Paris', 'Sydney'],
'Sales': [1000, 800, 1200, 900]}
df = pd.DataFrame(data)
# 将 DataFrame 写入工作表
df.to_excel("conditional_formatting.xlsx", index=False)
# 加载工作簿
wb = openpyxl.load_workbook('conditional_formatting.xlsx')
ws = wb.active
# 定义红色文本的条件格式规则
red_text_rule = CellIsRule(
operator="lessThan", formula=["1000"], stopIfTrue=True,
font=openpyxl.styles.Font(color="FF0000"))
ws.conditional_formatting.add(f"D2:D{len(df)+1}", red_text_rule)
# 定义绿色填充颜色刻度的条件
min_sales = min(df['Age'])
max_sales = max(df['Age'])
green_fill_rule = ColorScaleRule(
start_type='num', start_value=min_sales, start_color='0000FF00',
end_type='num', end_value=max_sales, end_color='00FFFF00')
ws.conditional_formatting.add(f"B2:B{len(df)+1}", green_fill_rule)
# 保存 Excel 工作簿
wb.save('conditional_formatting.xlsx')
```
在上述代码中,我们创建了一个 Excel 工作簿,并定义了两个条件格式规则:如果“Sales”值小于 1000,则文本显示为红色;“Age”列的单元格将根据其在最小值和最大值范围内的相对值填充绿色。最后,我们保存工作簿,当使用 Microsoft Excel 打开文件时,条件格式将被应用。
### 1.3 动态热力图案例研究
为了进一步展示条件格式的强大功能,我们将通过一个案例研究来创建一个动态热力图。以下是实现动态热力图的代码:
```python
import pandas as pd
import openpyxl
from openpyxl.utils.dataframe import dataframe_to_rows
from openpyxl.formatting.rule import ColorScaleRule
# 热力图的示例数据
data = {
'Category': ['A', 'B', 'C', 'D'],
'Jan': [10, 20, 30, 40],
'Feb': [15, 25, 35, 45],
'Mar': [12, 22, 32, 42],
'Apr': [18, 28, 38, 48]
}
# 将数据转换为 pandas DataFrame
df = pd.DataFrame(data)
# 将 DataFrame 写入工作表
df.to_excel("heatmap_with_conditional_formatting.xlsx", index=False)
# 加载工作簿
wb = openpyxl.load_workbook(
'heatmap_with_conditional_formatting.xlsx')
ws = wb.active
# 定义条件格式的范围(不包括 'Category' 列)
data_range = f'B2:E{len(df) + 1}'
# 对范围应用颜色刻度条件格式
color_scale_rule = ColorScaleRule(start_type='min',
start_color='FFFFFF', end_type='max', end_color='FF0000')
```
0
0
复制全文
相关推荐









