是否有更好的方法让函数根据传递给它的值输出颜色名称?更优雅的替代if else
下面的算法。
同样,理想情况下,颜色将来自标准颜色图,而不必在if else
语句中手动编写每个颜色名称。
谢谢,
def color_from_value(val):
if val <= 1:
return 'red'
elif val < 2:
return 'blue'
elif val < 3:
return 'green'
.
.
.
else:
return 'black'
您可以使用一个简单的列表,该列表可用于迭代matplotlib / pyplot行。(但是,这不涉及您的范围/限制。)例如:
colors = ['red','blue','green','black']
i=0
chosen_color = colors[i] # red
例如,您可以将其设为lambda以便处理默认情况(从https://stackoverflow.com/a/2574659/1021819借用):
color_from_value = lambda i: colors[i] if i < len(colors) else 'black'
assert(color_from_value(0) == 'red')
对于matplotlib,假设要绘制两个不同的数据集:
import numpy as np
import matplotlib.pyplot as plt
colors = ['r','b','g','k']
x = np.linspace(0.0,1.0,11)
y = [2.0*x,x**2 + 1.0]
labels = ['linear','quadratic']
然后:
for i in range(2):
plt.plot(x,y[i],color=colors[i],label=labels[i])
_=plt.legend()
plt.show()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句