from matplotlib import pyplot as plot def darken_adobe(s): if s <= .5: return .4 if s >= 2.333: return 0 if 1 <= s <= 1.667: return .275 if s < 1: return .4 + (s-.5)/(1-.5)*(.275-.4) if s > 1.667: return .275 + (s-1.667)/(2.333-1.667)*(0-.275) assert 0 def darken_simple(s): if s >= 2.5: return 0 return .5 * (1. - (s / 2.5)) def darken(xs, func): return [x+func(x) for x in xs] xs = [x / 100. for x in range(0, 300, 3)] plot.plot(xs, xs, xs, darken(xs, darken_adobe), xs, darken(xs, darken_simple)) plot.show()