繁体   English   中英

从颜色范围为axvspan着色(Python)

[英]Coloring axvspan from range of colors (Python)

背景

我正在尝试使用matplotlibPython中绘制连续的彩色区域。 我用(想象我是一些迭代变量)

axvspan(from_x[i], to_x[i], color=my_color[i])

绘制这个。

现在,我需要一种通用的方式来表达“给定要相邻绘制的N个区域,从绿色绘制为越来越多的红色”。

i = 0: area is green,
i = 1: area is green but with some red,
etc.
i = N: area is red.

你明白了。

问题当然,如果N是固定的,我可以手动输入rgb值,但不是。 我已经找到绘制线等的方法,但是我不确定如何对axvspan(...)进行此操作,尤其是如何使绿色变为红色。 我发现的大多数示例都是关于颜色映射的,我不确定是否要在这里使用。

非常感谢您的帮助。

您可以使用(r,g,b)元组作为颜色,因此我们可以在循环中移动时增加红色而减少绿色。

显然,您可以操纵N以及from_xto_x数组以满足您的需求。

import matplotlib.pyplot as plt
import numpy as np

fig,ax = plt.subplots(1)

N = 20

from_x = np.linspace(0,0.95,N)
to_x = from_x + 0.05

for i in range(N):
    ri = float(i)/float(N)
    gi = 1.-ri
    bi = 0.

    ax.axvspan(from_x[i], to_x[i], color=(ri,gi,bi))

plt.show()

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM