Kit*_*Kit 15 python plot color-scheme colors matplotlib
在matplotlib,线条图自动颜色循环.这两个线图将具有不同的颜色.
axes.plot(x1, y)
axes.plot(x2, y)
Run Code Online (Sandbox Code Playgroud)
但是,条形图没有.这两个数据系列都有蓝条.
axes.bar(x1, y)
axes.bar(x2, y)
Run Code Online (Sandbox Code Playgroud)
如何使条形图在预定义的一组颜色中自动循环?
ev-*_*-br 24
这些方面有什么能为你做的吗?
#!/usr/bin/python
from matplotlib import cm
import matplotlib.pyplot as plt
#data
x=[1,2,4]
y=[11,12,8]
for i in range(0,len(x)):
plt.bar(x[i],y[i],color=cm.jet(1.*i/len(x)))
plt.show()
Run Code Online (Sandbox Code Playgroud)
有关彩色地图的更多信息.
编辑:请参阅此示例,了解如何在预定义的一组颜色上循环.
小智 4
可选:要完全控制图形的样式,请使用现有的 mplstyle 作为模板: https ://github.com/matplotlib/matplotlib/tree/master/lib/matplotlib/mpl-data/stylelib
调整参数:axes.prop_cycle:cycler('color', [....])
加载你的风格:
from matplotlib import style
style.use ('PATH TO YOUR MPL STYLE')
Run Code Online (Sandbox Code Playgroud)
您几乎可以以任何您想要的方式循环您的或默认样式颜色循环:
#!/usr/bin/python
import matplotlib.pyplot as plt
#data
x=[1,2,4]
y=[11,12,8]
prop_iter = iter(plt.rcParams['axes.prop_cycle'])
for i in range(0,len(x)):
plt.bar(x[i],y[i],color=next(prop_iter)['color'])
plt.show()
Run Code Online (Sandbox Code Playgroud)
plt.rcParams['axes.prop_cycle'] 获取所有循环,因此您需要使用键 ['color'] 选择正确的循环器。
您可以放弃迭代器创建并使用列表理解和 zip 来创建一个衬垫:
#!/usr/bin/python
import matplotlib.pyplot as plt
x=[1,2,4]
y=[11,12,8]
prop = plt.rcParams['axes.prop_cycle']
[plt.bar(param[0],param[1],color=param[2]['color']) for param in zip(x,y,prop)]
plt.show()
Run Code Online (Sandbox Code Playgroud)