我想創建一個在綠色和藍色(或其他任何兩種顏色之間)之間插入的新色彩映射。我的目標是得到這樣的東西:如何在Python中創建顏色漸變?
首先,我真的不知道這是否可以使用藍色和綠色的線性插值完成。如果可以的話,我不知道該怎麼做,我發現了一些使用matplotlib方法插入指定的RGB值的文檔。here
真正的麻煩在於瞭解「cdict2」如何在下面工作。例如,文檔中提到:
「例如:假設你想讓紅色從下半部分的0增加到1,在中間部分用綠色做同樣的事情,在上半部分用藍色,然後你會用:」
from matplotlib import pyplot as plt
import matplotlib
import numpy as np
plt.figure()
a=np.outer(np.arange(0,1,0.01),np.ones(10))
cdict2 = {'red': [(0.0, 0.0, 0.0),
(0.5, 1.0, 1.0),
(1.0, 1.0, 1.0)],
'green': [(0.0, 0.0, 0.0),
(0.25, 0.0, 0.0),
(0.75, 1.0, 1.0),
(1.0, 1.0, 1.0)],
'blue': [(0.0, 0.0, 0.0),
(0.5, 0.0, 0.0),
(1.0, 1.0, 1.0)]}
my_cmap2 = matplotlib.colors.LinearSegmentedColormap('my_colormap2',cdict2,256)
plt.imshow(a,aspect='auto', cmap =my_cmap2)
plt.show()
編輯:我現在明白是怎麼插的作品,例如這會給一個紅白色插值:
由白變紅:沿着走的列‘矩陣’爲每種顏色,在第一列中我們有我們希望插值開始和結束的地方的x座標,另外兩列是顏色val的實際值在那個座標上。
cdict2 = {'red': [(0.0, 1.0, 1.0),
(1.0, 1.0, 1.0),
(1.0, 1.0, 1.0)],
'green': [(0.0, 1.0, 1.0),
(1.0, 0.0, 0.0),
(1.0, 0.0, 0.0)],
'blue': [(0.0, 1.0, 1.0),
(1.0, 0.0, 0.0),
(1.0, 0.0, 0.0)]}
很明顯,我想會是非常困難的梯度由RGB空間插值創造... ...
[查看此鏈接](http://matplotlib.org/examples/color/named_colors.html)有關指定的顏色。那裏的代碼顯示了規範方法之間的轉換。 [我也認爲這個鏈接](http://matplotlib.org/examples/api/colorbar_only.html)關於顏色條可能會有所幫助。 – mauve 2014-09-04 15:15:33
您是如何創建該示例漸變的?這遠非線性。 – 2014-09-04 18:04:25
是的,它只是一個屏幕截圖,說明我想要什麼。我沒有創建它。我想知道如果Python有一些功能,這些功能,以促進這些類型的梯度...... – Jack 2014-09-04 18:10:15