是否有适用于色盲人群的matplotlib tab系列色卡替代方案?
色盲友好的类Tab系列色卡推荐
Matplotlib 内置了多款专为色盲人群优化的离散色卡,风格和 Tab 系列(多色、高区分度)接近,完全适配出版物需求,推荐以下几种:
Dark2色卡
属于 ColorBrewer 系列,专门针对红绿色盲优化,提供8种沉稳的实色(可扩展更多衍生色),色块风格和 Tab 系列一致,适合多分类的折线图、柱状图。使用方式直接替换原色卡:# 直接指定色卡 plt.scatter(x, y, c=category_labels, cmap='Dark2') # 或直接提取颜色列表 from matplotlib import cm color_list = cm.Dark2.colors plt.bar(categories, values, color=color_list)Set2色卡
同样来自 ColorBrewer,颜色柔和但区分度极强,适配蓝黄色盲,适合10种以内分类的场景,布局逻辑和 Tab 系列匹配,无需调整绘图逻辑即可替换:plt.boxplot(data, patch_artist=True, boxprops=dict(facecolor=plt.cm.Set2.colors[0]))离散化的
viridis/plasma系色卡
如果需要超过10种颜色(类似 Tab20/Tab20b 的多色块需求),可以将 Matplotlib 原生的连续色盲友好色卡转为离散版本,梯度自然且色盲友好:import numpy as np from matplotlib.colors import ListedColormap # 生成20种离散色,匹配Tab20的数量 viridis_discrete = ListedColormap(plt.cm.viridis(np.linspace(0, 1, 20))) plt.plot(x_values, y_values, cmap=viridis_discrete)
如果需要更贴合 Tab20b 的高对比度风格,也可以手动调整现有 Tab 色卡的红绿色系,但上述内置色卡均经过专业色盲适配验证,更推荐直接使用以保证合规性。
内容的提问来源于stack exchange,提问作者nia
相关产品推荐
相关产品推荐

