首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有可控制颜色的matplotlib

具有可控制颜色的matplotlib
EN

Stack Overflow用户
提问于 2017-05-23 21:03:34
回答 2查看 71关注 0票数 1

我正在绘制这个数据文件,它工作得很好。

代码语言:javascript
复制
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)。我怎么能做到这一点?

EN

回答 2

Stack Overflow用户

发布于 2017-05-23 21:54:51

默认情况下,fill_between不应推进颜色循环器。因此,直接在相应的plot之后绘制相应的fill_between应该会给它们提供相同的颜色。

代码语言:javascript
复制
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不推进颜色循环器。;-)

票数 0
EN

Stack Overflow用户

发布于 2017-05-23 23:35:14

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

代码语言:javascript
复制
l, = plt.plot(x)
color = l.get_color()

我还没有在fill_between上尝试过,但我认为您可能需要

代码语言:javascript
复制
l = plt.fill_between(...)
color = l.get_cmap()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44135676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档