我正在绘制这个数据文件,它工作得很好。
def orb_p():
# print(data[:,0])
pxp = data[:,3]
pxm = data[:,4]
pyp = data[:,5]
pym = data[:,6]
pzp = data[:,7]
pzm = data[:,8]
plt.plot(x,pxp, "-")
plt.plot(x,pxm, "-")
plt.plot(x,pyp, "-")
plt.plot(x,pym, "-")
plt.plot(x,pzp, "-")
plt.plot(x,pzm, "-")
plt.fill_between(x,pxp)
plt.fill_between(x,pyp)
plt.fill_between(x,pzp)
plt.fill_between(x,pxm)
plt.fill_between(x,pym)
plt.fill_between(x,pzm)
plt.show()问题是我想对pxp和pxm使用相同的颜色( (pyp,pym)和(pzp,pzm)相同)。我可以使用(r-)等选项手动控制它们,但我想使用默认配色方案(ggplot)。我怎么能做到这一点?
发布于 2017-05-23 21:54:51
默认情况下,fill_between不应推进颜色循环器。因此,直接在相应的plot之后绘制相应的fill_between应该会给它们提供相同的颜色。
import numpy as np; np.random.seed(1)
import matplotlib.pyplot as plt
x = np.linspace(0,2, 23)
data = np.fliplr(np.cumsum(np.cumsum(np.random.normal(size=(len(x),9)), axis=0)+3, axis=1))
for i in range(3,9):
plt.plot(x,data[:,i], "-")
plt.fill_between(x,data[:,i])
plt.show()

请注意,您实际上并不需要plot函数。去掉它也会得到同样的结果。

虽然我不知道为什么这是可行的,如果fill_between不推进颜色循环器。;-)
发布于 2017-05-23 23:35:14
要访问色轮中使用的颜色,请执行以下操作:
l, = plt.plot(x)
color = l.get_color()我还没有在fill_between上尝试过,但我认为您可能需要
l = plt.fill_between(...)
color = l.get_cmap()https://stackoverflow.com/questions/44135676
复制相似问题