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'