You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Matplotlib中合并tab20b与tab20c两种离散颜色映射

合并tab20b与tab20c颜色映射实现多类别堆叠柱状图

完全可以轻松实现,核心思路是直接从Matplotlib的颜色映射中提取颜色列表并拼接,具体步骤如下:

  • 从plt.cm中分别提取tab20b和tab20c的全部20种颜色
  • 将两个颜色数组合并为一个包含40种颜色的数组
  • 绘制堆叠柱状图时,直接指定合并后的颜色列表即可

以下是可直接运行的代码示例:

import matplotlib.pyplot as plt
import numpy as np

# 提取两个颜色映射的完整颜色集合
tab20b = plt.cm.tab20b(np.linspace(0, 1, 20))
tab20c = plt.cm.tab20c(np.linspace(0, 1, 20))
# 拼接得到40种离散颜色
combined_colors = np.concatenate([tab20b, tab20c])

# 生成模拟数据(40个类别,5个分组)
group_count = 5
category_count = 40
data = np.random.rand(group_count, category_count)

# 绘制堆叠柱状图
fig, ax = plt.subplots(figsize=(10, 6))
bottom = np.zeros(group_count)
for idx in range(category_count):
    ax.bar(range(group_count), data[:, idx], bottom=bottom, color=combined_colors[idx])
    bottom += data[:, idx]

ax.set_title('40类别堆叠柱状图')
plt.tight_layout()
plt.show()

额外提示:

  • 若部分颜色区分度不足,可提前通过plt.imshow预览两个颜色映射的颜色分布,再调整拼接逻辑
  • 也可根据实际类别数量,只提取部分颜色进行拼接(比如取tab20b的15种+tab20c的10种)

内容的提问来源于stack exchange,提问作者Xtiaan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 20:20:51