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

如何获取Matplotlib的默认线型循环?

获取Matplotlib默认线型循环的方法

Matplotlib的默认配置里,axes.prop_cycle只包含颜色循环,并没有内置的线型循环——这就是你执行plt.rcParams['axes.prop_cycle'].by_key()['linestyle']无法生效的原因。

如果需要实现类似颜色循环的线型自动切换,可以通过两种方式处理:

1. 自定义线型循环并替换全局属性循环

手动定义一组线型,将其与默认颜色循环合并,修改全局配置后绘图时会自动循环颜色和线型:

import matplotlib.pyplot as plt
from cycler import cycler

# 自定义线型列表
line_styles = ['-', '--', '-.', ':']
# 合并默认颜色循环与自定义线型循环
plt.rcParams['axes.prop_cycle'] = cycler('color', plt.rcParams['axes.prop_cycle'].by_key()['color']) + cycler('linestyle', line_styles)

# 测试:绘制多条线,自动循环颜色+线型
for i in range(8):
    plt.plot([0,1], [0,i])
plt.show()

2. 绘图时手动遍历线型列表

如果不想修改全局配置,可在绘图时手动调用自定义线型列表,结合默认颜色循环使用:

import matplotlib.pyplot as plt

line_styles = ['-', '--', '-.', ':']
# 获取默认颜色循环
colors = plt.rcParams['axes.prop_cycle'].by_key()['color']

for i in range(8):
    plt.plot([0,1], [0,i], color=colors[i%len(colors)], linestyle=line_styles[i%len(line_styles)])
plt.show()

需要注意的是,Matplotlib默认仅循环颜色,线型默认保持实线('-'),因此原生配置中没有内置的线型循环项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 15:22:02