Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 具有控制颜色的matplotlib_Python_Python 3.x_Matplotlib - Fatal编程技术网

Python 具有控制颜色的matplotlib

Python 具有控制颜色的matplotlib,python,python-3.x,matplotlib,Python,Python 3.x,Matplotlib,我正在绘制这个数据文件,它工作正常 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, "-

我正在绘制这个数据文件,它工作正常

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
)。如何做到这一点?

默认情况下,之间的填充不应推进颜色循环器。因此,在相应的
绘图
之后直接绘制相应的
fill\u,应使它们具有相同的颜色

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()

请注意,实际上并不需要
绘图
功能。忽略它也会得到同样的结果


虽然我不知道为什么会这样,但如果
之间填充,则不会提高颜色循环器的速度

默认情况下,
fill\u-between
不应推进颜色循环器。因此,在相应的
绘图
之后直接绘制相应的
fill\u,应使它们具有相同的颜色

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()

请注意,实际上并不需要
绘图
功能。忽略它也会得到同样的结果


虽然我不知道为什么会这样,但如果
之间填充,则不会提高颜色循环器的速度

要访问色轮中使用的颜色:

l, = plt.plot(x)
color = l.get_color()
我还没有试过,但我想你可能需要

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

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

l, = plt.plot(x)
color = l.get_color()
我还没有试过,但我想你可能需要

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

您可以使用简单字符串引用matplotlib颜色循环中的颜色,例如,
'C0'
'C2'
您可以使用简单字符串引用matplotlib颜色循环中的颜色,例如,
'C0'
'C2'