从各种颜色着色axvspan(Python)

时间:2016-04-04 14:21:39

标签: python matplotlib plot colormap

背景

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

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

绘制这个。

现在,我需要一种通用的方式来说明#34;从绿色到越来越红的情节,给定N个区域彼此相邻并且#34;。

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

你明白了。

问题 当然,如果N被修复,我可以手动输入rgb值,但事实并非如此。如果绘制线等,我已经找到了这样做的方法,但我不知道如何为axvspan(...)做这个,特别是如何获得绿色到红色的功能。我找到的大多数例子都是关于彩色地图的,我不确定我想在这里使用。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用(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()

enter image description here