如何使用PyPlot(而非matplotlib)制作自定义颜色图



在IJulia工作。不顾一切地试图制作一个自定义的颜色图。试过线路:

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

这导致了以下错误

类型PyObject在加载In[16]时没有字段颜色,在从第1行开始的表达式中

这显然意味着我不能直接使用matplotlib,而只能使用PyPlot中的函数。

我不能将matplotlib与导入一起使用(因为这在IJulia中无效)。我注意到其他人在类似的问题上也得到了帮助,但这并不能解决我的问题。

通过使用PyPlot用于包装matplotlib的PyCall包,您可以获得如下颜色图:

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))

这相当于python中的:cmap.set_over((0,0,0))。有关如何使用PyPlot绘制不同类型绘图的其他示例,请参见以下示例:https://gist.github.com/gizmaa/7214002

您不需要使用PyCall直接调用Python(当然,这是一个选项)。您也可以只使用ColorMapPyPlot构造函数来从(r,g,b)数组或Julia Color包中定义的颜色数组构造颜色映射。请参阅PyPlot ColorMap文档。例如:

using PyPlot, Color
ColorMap("A", [RGB(1,0,0),RGB(0,1,0),RGB(0,0,1)])

最新更新