如何使用Matplotlib为自定义ColorChecker色卡添加内外边界?
自定义ColorChecker色卡添加边界的实现方案
要给每个色块添加内部边界、给整个色卡添加外边界,可以通过Matplotlib的内置参数和矩形补丁来实现,具体代码和说明如下:
完整可运行代码
import numpy as np import matplotlib.pyplot as plt from matplotlib.patches import Rectangle # 定义色卡的RGB颜色矩阵 primary_color = np.array( [ [[0,80,159], [15,165,56], [230,49,80]], [[227,227,227], [51,51,51],[255,229,0]], ], dtype='uint8' ) fig, ax = plt.subplots() # 绘制色卡并设置内部色块的边界 ax.matshow(primary_color, edgecolor='black', linewidth=2) # 添加色卡的外边界 rows, cols = primary_color.shape[:2] # 计算外框的位置:适配matshow的中心对齐坐标 outer_rect = Rectangle((-0.5, -0.5), cols, rows, edgecolor='black', linewidth=3, fill=False) ax.add_patch(outer_rect) plt.axis('off') plt.show()
关键细节说明
- 内部色块边界:调用
matshow时,通过edgecolor指定色块间边框的颜色,linewidth控制边框粗细,直接实现每个色块的内部分隔线; - 色卡外边界:利用
Rectangle补丁绘制覆盖整个色卡的外框,(-0.5, -0.5)是因为matshow的坐标以色块中心为基准,偏移0.5才能对齐色块的边缘;cols和rows对应色卡的列数和行数,确保外框刚好包裹所有色块; - 若需要区分内外边界样式(比如内部用灰色、外部用粗黑),只需修改两处的
edgecolor和linewidth参数即可。
内容的提问来源于stack exchange,提问作者Strange
相关产品推荐
相关产品推荐

