背景
我正在尝试使用 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(...)做这个,特别是如何获得绿色到红色的功能。我找到的大多数例子都是关于彩色地图的,我不确定我想在这里使用。
非常感谢您的帮助。
答案 0 :(得分:1)
您可以使用(r,g,b)
元组作为颜色,因此我们可以在循环中增加红色并减少绿色。
显然,您可以操纵N
以及from_x
和to_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()