2015-04-04 15 views
5

Praca w IJulia. Desperacko próbuję stworzyć niestandardową mapę kolorów. Próbowano linię:Jak zrobić niestandardową mapę kolorów za pomocą PyPlot (nie matplotlib)

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

które doprowadziły do ​​następujących błędów

typu PyObject ma kolor pola przy załadunku w [16], w ekspresji począwszy od linii 1

które najwyraźniej oznacza, że ​​nie mogę bezpośrednio używać matplotlib, ale tylko funkcje, które są w PyPlot.

Nie mogę włączyć matplotlib z importem (ponieważ jest to nieprawidłowe w IJulia). Zauważyłem, że inni mieli pomoc w podobnych problemach, ale to nie rozwiązuje mojego.

Odpowiedz

3

Wykorzystując pakiet PyCall który PyPlot używa do zawijania matplotlib można uzyskać colormap takiego:

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

W celu polach dostępowych w PyObject trzeba indeksu obiekt za pomocą symbolu, takich jak: Jest to odpowiednik: cmap.set_over((0,0,0)) w python. Aby uzyskać inne dobre przykłady drukowania różnych rodzajów wykresów za pomocą PyPlot, zobacz te przykłady: https://gist.github.com/gizmaa/7214002

+0

Dziękuję bardzo. Działa idealnie. Jusst zastanawia się, w jaki sposób mogłem znaleźć to rozwiązanie, korzystając z zasobów w sieci. Jakieś sugestie. Nie jestem pod wrażeniem dokumentacji jako pomocy dla nowicjuszy. Dziękuję również bardzo za uporządkowanie mojego pierwotnego pytania. –

+0

Podczas korzystania z pakietu najlepszym sposobem zdobycia wiedzy jest zapoznanie się z plikiem readme na GitHub, zobacz https://github.com/stevengj/PyCall.jl/blob/master/README.md. –

0

Nie musisz używać PyCall do bezpośredniego wywoływania Pythona (chociaż jest to oczywiście opcja). Możesz także użyć konstruktorów PyPlot dla ColorMap do skonstruowania mapy kolorów z tablic (r, g, b) lub tablicy kolorów zgodnie z definicją w pakiecie Julia Color. Zobacz PyPlot ColorMap documentation. Na przykład:

using PyPlot, Color 
ColorMap("A", [RGB(1,0,0),RGB(0,1,0),RGB(0,0,1)]) 
Powiązane problemy