2012-02-22 82 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"]) 
相關問題