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

如何在Matplotlib折线图中自定义各折线的固定颜色?

自定义Pandas折线图的固定颜色配置

要让不同图表中对应列的折线颜色保持一致,核心是给plot方法传入固定的颜色序列,替代默认的随机配色。以下是几种实用的实现方式:

方法1:直接指定与列顺序匹配的颜色列表

如果数据集的列顺序固定,直接定义一个颜色列表,和列的顺序一一对应即可:

import matplotlib.pyplot as plt

# 自定义颜色列表,顺序与cum_return_pf的列顺序完全对应
# 支持十六进制码、RGB元组、官方颜色名称
custom_colors = ['#FF5733', '#33FF57', '#3357FF', '#F333FF', '#FF33A6', '#FFC300']

ax = cum_return_pf.plot(figsize=(10, 5), color=custom_colors)
ax.set(xlabel="Year", ylabel="Return") 
plt.savefig('Comparison.jpg', dpi=300)

方法2:用字典绑定列名与颜色(更稳妥)

如果后续数据集的列顺序可能变化,用字典把列名和固定颜色绑定,确保颜色和列的对应关系不会混乱:

import matplotlib.pyplot as plt

# 定义列名到颜色的映射字典,覆盖所有6个列
color_mapping = {
    '列名1': '#FF5733',
    '列名2': '#33FF57',
    '列名3': '#3357FF',
    '列名4': '#F333FF',
    '列名5': '#FF33A6',
    '列名6': '#FFC300'
}

# 按当前数据集的列顺序提取对应颜色
custom_colors = [color_mapping[col] for col in cum_return_pf.columns]

ax = cum_return_pf.plot(figsize=(10, 5), color=custom_colors)
ax.set(xlabel="Year", ylabel="Return") 
plt.savefig('Comparison.jpg', dpi=300)

方法3:自定义Colormap复用配色方案

如果需要在多个图表中复用同一套配色,可以创建自定义的Colormap:

import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap

# 创建自定义配色的Colormap
custom_cmap = ListedColormap(['#FF5733', '#33FF57', '#3357FF', '#F333FF', '#FF33A6', '#FFC300'])

# 提取对应数量的颜色(匹配数据集列数)
custom_colors = custom_cmap(range(len(cum_return_pf.columns)))

ax = cum_return_pf.plot(figsize=(10, 5), color=custom_colors)
ax.set(xlabel="Year", ylabel="Return") 
plt.savefig('Comparison.jpg', dpi=300)

注意事项

  • 颜色格式支持:十六进制码(如#FF5733)、RGB元组(如(0.8, 0.2, 0.1))、Matplotlib内置颜色名(如'red'、'darkblue')。
  • 只要保持使用同一套颜色配置,无论生成多少次图表,对应列的折线颜色都会完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 05:06:02