如何用Python制作对角线分隔的混色网格?
实现对角线分色的混色刻度数值网格
我需要创建一个混色刻度数值网格,核心要求是对角线上下区域根据数值呈现不同配色:
- 对角线下方区域:采用红绿色混合配色,数值越高绿色占比越高
- 对角线上方区域:采用红蓝色混合配色,数值越高蓝色占比越高
无需显示网格内的数值,此前通过谷歌表格条件格式实现过,现在要改用Python完成。
改进后的代码
import matplotlib.pyplot as plt import numpy as np # 定义网格尺寸 n = 20 # 创建数值网格(示例:基于到对角线的距离生成0-1的归一化数值) values = np.zeros((n, n)) for i in range(n): for j in range(n): if j < i: # 下三角区域 values[i, j] = (i - j) / (n - 1) elif j > i: # 上三角区域 values[i, j] = (j - i) / (n - 1) # 对角线数值设为0(可按需调整) else: values[i, j] = 0 # 初始化RGB颜色网格 grid = np.zeros((n, n, 3)) # 填充下三角:红+绿混合,数值越高绿色越浓 for i in range(n): for j in range(i): val = values[i, j] grid[i, j] = [1, val, 0] # 填充上三角:红+蓝混合,数值越高蓝色越浓 for i in range(n): for j in range(i + 1, n): val = values[i, j] grid[i, j] = [1, 0, val] # 对角线设置为纯红色(可自定义) for i in range(n): grid[i, i] = [1, 0, 0] # 显示网格并关闭坐标轴 plt.imshow(grid) plt.axis('off') plt.show()
关键说明
- 数值网格可替换为你实际业务中的刻度数值,示例仅用距离对角线的距离生成渐变值
- 配色逻辑:红色作为基础色,下三角用数值控制绿色分量,上三角用数值控制蓝色分量,实现高值时的目标混色效果
- 对角线颜色可根据需求修改,示例设置为纯红色
- 关闭坐标轴后仅展示配色网格,符合无需显示数值的要求
内容的提问来源于stack exchange,提问作者Edimilson Rodrigues Ed
相关产品推荐
相关产品推荐

