2015-04-04 90 views
5

在IJulia工作。拼命嘗試製作自定義色彩地圖。 試過行:如何使用PyPlot製作自定義色彩地圖(不適合matplotlib)

matplotlib.colors.ListedColormap([(1,0,0),(0,1,0),(0,0,1)],"A") 

這導致以下錯誤

類型的PyObject沒有場顏色,同時裝載在[16],在表達開始第1行

其顯然意味着我不能直接使用matplotlib,而只能使用PyPlot中的函數。

我不能涉及與進口matplotlib(因爲這是無效的IJulia)。 我注意到其他人對類似問題有幫助,但這並不能解決我的問題。

回答

3

通過使用PyPlot使用PyCall包包matplotlib可以獲取這樣的色彩映射表:

using PyCall 
@pyimport matplotlib.colors as matcolors 
cmap = matcolors.ListedColormap([(1,0,0),(0,1,0),(0,0,1)],"A") 

爲了在一個的PyObject需要索引與像一個符號的對象訪問字段:

cmap[:set_over]((0,0,0)) 

這相當於:cmap.set_over((0,0,0))在python中。有關如何使用PyPlot繪製不同類型圖的其他很好的示例,請參閱以下示例:https://gist.github.com/gizmaa/7214002

+0

太謝謝你了。完美的作品。 Jusst想知道如何通過使用網上的資源來找到這個解決方案。有什麼建議麼。作爲新手的幫助,我對這些文檔印象不深。也非常感謝您對我原來的問題進行整理。 – 2015-04-05 21:00:37

+0

使用包時,獲取知識的最佳方法是查看GitHub上的自述文件,請參閱https://github.com/stevengj/PyCall.jl/blob/master/README.md。 – 2015-04-06 06:28:01

0

您不需要使用PyCall直接調用Python(雖然這當然是一個選項)。您也可以使用PyPlot構造函數ColorMap從(r,g,b)數組或顏色數組構造一個顏色映射,如Julia Color包中所定義。請參閱PyPlot ColorMap documentation。例如:

using PyPlot, Color 
ColorMap("A", [RGB(1,0,0),RGB(0,1,0),RGB(0,0,1)]) 
相關問題