matplotlib fill_between不会在颜色之间循环

Kei*_*ith 5 python numpy colors matplotlib

当您在同一图形上绘制多个图形时,大多数plot方法(例如plot()和errorbar)会自动更改为color_palette中的下一个颜色。由于某些原因,fill_between()并非如此。我知道我可以对此进行硬编码,但是它是在循环中完成的,这使它很烦人。有没有解决这个问题的好方法?

import numpy as np
import matplotlib.pyplot as plt

x = np.asarray([1.0, 2.0, 3.0, 4.0, 5.0])
y = np.asarray([1.0, 2.0, 3.0, 4.0, 5.0])
xerr = np.asarray([0.2, 0.4, 0.6, 0.8, 1.0])
yerr = np.asarray([0.1, 0.2, 0.3, 0.4, 0.5])

plt.fill_between(x, y-yerr, y+yerr,alpha=0.5)
plt.fill_between(y,x-xerr,x+xerr,alpha=0.5)

plt.show() 
Run Code Online (Sandbox Code Playgroud)

也许只是获取调色板中的当前位置并迭代到下一个就足够了。

小智 2

在 matplotlib 3.3.3 中,需要对 Ed Smith 提出的语法进行以下调整:

clist = rcParams['axes.prop_cycle']
Run Code Online (Sandbox Code Playgroud)