2015-05-06 129 views
4

如果我創建通過例如顏色: 進口numpy的作爲NP 從matplotlib進口pyplot作爲PLT使用matplotlib色彩映射爲顏色週期

n = 6 
color = plt.cm.coolwarm(np.linspace(0.1,0.9,n)) 
color 

顏色是numpy的數組:

array([[ 0.34832334, 0.46571115, 0.88834616, 1. ], [ 0.56518158, 0.69943844, 0.99663507, 1. ], [ 0.77737753, 0.84092121, 0.9461493 , 1. ], [ 0.93577377, 0.8122367 , 0.74715647, 1. ], [ 0.96049006, 0.61627642, 0.4954666 , 1. ], [ 0.83936494, 0.32185622, 0.26492398, 1. ]])

但是,如果我在我的.mplstyle文件(map(tuple,color[:,0:-1]))中插入了作爲元組的RGB值(不帶alpha值1),則會得到與此類似的錯誤:

in file "/home/moritz/.config/matplotlib/stylelib/ggplot.mplstyle" Key axes.color_cycle: [(0.34832334141176474 does not look like a color arg (val, error_details, msg))

任何想法爲什麼?

+0

顏色ARG應該以'('不'[(',是嗎? – cphlewis

+0

還不行。我試過((...),(。 ...));(...),(...);(...)(...) – Moritz

回答

3

細節實際上是在matplotlibrc中:它需要一個字符串rep(十六進制或字母或單詞,而不是元組)。

import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib as mpl 

fig, ax1 = plt.subplots(1,1) 

ys = np.random.random((5, 6)) 
ax1.plot(range(5), ys) 
ax1.set_title('Default color cycle') 
plt.show() 

# From the sample matplotlibrc: 
#axes.color_cycle : b, g, r, c, m, y, k # color cycle for plot lines 
              # as list of string colorspecs: 
              # single letter, long name, or 
              # web-style hex 

# setting color cycle after calling plt.subplots doesn't "take" 
# try some hex values as **string** colorspecs 
mpl.rcParams['axes.color_cycle'] = ['#129845','#271254', '#FA4411', '#098765', '#000009'] 

fig, ax2 = plt.subplots(1,1) 
ax2.plot(range(5), ys) 
ax2.set_title('New color cycle') 


n = 6 
color = plt.cm.coolwarm(np.linspace(0.1,0.9,n)) # This returns RGBA; convert: 
hexcolor = map(lambda rgb:'#%02x%02x%02x' % (rgb[0]*255,rgb[1]*255,rgb[2]*255), 
       tuple(color[:,0:-1])) 

mpl.rcParams['axes.color_cycle'] = hexcolor 

fig, ax3 = plt.subplots(1,1) 
ax3.plot(range(5), ys) 
ax3.set_title('Color cycle from colormap') 

plt.show() 

enter image description here enter image description here enter image description here

相關問題