如何为使用matplotlib制作的图设置一组默认颜色?我可以像这样设置一个特定的颜色图
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure(i)
ax=plt.gca()
colormap = plt.get_cmap('jet')
ax.set_color_cycle([colormap(k) for k in np.linspace(0, 1, 10)])
但是有没有办法为所有绘图设置相同的颜色集,包括子图?
答案 0 :(得分:68)
当然!可以specify axes.color_cycle
in your .matplotlibrc
file使用matplotlib.rcParams
或matplotlib.rc
在运行时设置它。
作为后者的一个例子:
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
# Set the default color cycle
mpl.rcParams['axes.color_cycle'] = ['r', 'k', 'c']
# Alternately, we could use rc:
# mpl.rc('axes', color_cycle=['r','k','c'])
x = np.linspace(0, 20, 100)
fig, axes = plt.subplots(nrows=2)
for i in range(10):
axes[0].plot(x, i * (x - 10)**2)
for i in range(10):
axes[1].plot(x, i * np.cos(x))
plt.show()
答案 1 :(得分:39)
从matplotlib 1.5开始,不推荐使用mpl.rcParams [' axes.color_cycle']。你应该使用axes.prop_cycle:
angular.module('vehiclesApp').directive('drDuplicate', function() {
return {
restrict: 'A',
//scope: true,
require: 'ngModel',
link: function(scope, elem, attrs, ctrl) {
ctrl.$validators.duplicate = function(modelValue) {
//console.log(modelValue);
//console.log(scope.rows);
//return modelValue % 2 === 1;
//return modelValue.length > 1;
//if(scope.rows.length > 1) {
// var arr = [];
// for(j=0, i=1; i<=scope.rows.length; i++, j++) {
// //if(scope.rows[j].vrm != '') {
// arr.push(scope.rows[j].vrm);
// //}
// }
//}
//console.log(arr);
};
}
};
});
答案 2 :(得分:0)
在2.1.0版本中,以下内容对我有效,使用set_prop_cycle和模块循环器
from cycler import cycler
custom_cycler = (cycler(color=['r','b','m','g']))
ax.set_prop_cycle(custom_cycler)
您可以添加其他行属性
custom_cycler = (cycler(color=['r','b','m','g']) + cycler(lw=[1,1,1,2]))
'ax'来自ax = plt.axes()或任何轴生成器