2012-02-22 80 views
53

如何设置用matplotlib制作的图的默认颜色集?我可以设置特定的颜色映射这样如何使用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

相关http://stackoverflow.com/questions/4971269/how-to-pick-a-new-color-for-each-plotted-line-within-a-图式,matplotlib – 2016-09-16 00:33:05

回答

65

当然!可以使用specify axes.color_cycle in your .matplotlibrc file或在运行时使用matplotlib.rcParamsmatplotlib.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() 

enter image description here

22

从matplotlib 1.5开始,mpl.rcParams [ 'axes.color_cycle']被弃用。您应该使用axes.prop_cycle:

import matplotlib as mpl 
mpl.rcParams['axes.prop_cycle'] = mpl.cycler(color=["r", "#e94cdc", "0.7"]) 
相关问题