[英]Coloring axvspan from range of colors (Python)
背景
我正在尝试使用matplotlib在Python中绘制连续的彩色区域。 我用(想象我是一些迭代变量)
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_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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.