带控制颜色的matplotlib

2024-06-30 11:02:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在绘制这个数据文件,工作正常。你知道吗

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)。我怎么能做到?你知道吗


Tags: dataplot颜色数据文件def绘制pltbetween
2条回答

要访问色轮中使用的颜色,请执行以下操作:

l, = plt.plot(x)
color = l.get_color()

我已经有fill_between段时间没试过了,但我想你可能需要

l = plt.fill_between(...)
color = l.get_cmap()

默认情况下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()

enter image description here

请注意,实际上并不需要plot函数。去掉它也会得到相同的结果。enter image description here

虽然我不知道为什么这样做,但是如果fill_between不推进颜色循环器,;-

相关问题 更多 >