19
我有很多的圖表我想在一個情節來繪製的。我剛開始與matplotlib並不能找到產生大量的可區分顏色:(也許在循環與HSV SV最大的好辦法?matplotlib大套的顏色地塊
我想的有點像
args=[]
for i,(x,y) in enumerate(data):
args.extend([x,y,hsv(i)])
plot(*args)
?
任何建議:)
我有很多的圖表我想在一個情節來繪製的。我剛開始與matplotlib並不能找到產生大量的可區分顏色:(也許在循環與HSV SV最大的好辦法?matplotlib大套的顏色地塊
我想的有點像
args=[]
for i,(x,y) in enumerate(data):
args.extend([x,y,hsv(i)])
plot(*args)
?
任何建議:)
我認爲你有正確的想法,但如果你通過顏色表hsv
數中在範圍(0,1)攤開的顏色會更容易分辨:
hsv = plt.get_cmap('hsv')
hsv(float(i)/(len(data)-1))
,或者使用NumPy的:
colors = hsv(np.linspace(0, 1.0, len(kinds)))
例如:
import datetime as DT
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import scipy.interpolate as interpolate
dates = [DT.date(year, 9, 1) for year in range(2003, 2009)]
t = list(map(mdates.date2num, dates))
jec = (100, 70, 125, 150, 300, 250)
plt.plot(dates, jec, 'k.', markersize = 20)
new_t = np.linspace(min(t), max(t), 80)
new_dates = map(mdates.num2date, new_t)
kinds = ('cubic', 'quadratic', 'slinear', 'nearest', 'linear', 'zero', 4, 5)
cmap = plt.get_cmap('jet')
colors = cmap(np.linspace(0, 1.0, len(kinds)))
for kind, color in zip(kinds, colors):
new_jec = interpolate.interp1d(t, jec, kind=kind)(new_t)
plt.plot(new_t, new_jec, '-', label=str(kind), color=color)
plt.legend(loc = 'best')
plt.show()
OK,我明白了。謝謝:)但是,似乎我的matplotlib確實知道cm.jet(並且文檔也沒有提及它)。我現在可以在哪裏找到它? – Gerenuk
哦,我覺得它適用於matplotlib.pyplot.jet() – Gerenuk
你也可以使用'plt.get_cmap('jet')'。我編輯了這篇文章以顯示這一點。 – unutbu