如何使用PyPlot制作自定义色彩映射(不适用于matplotlib)

时间:2015-04-04 06:13:26

标签: matplotlib julia colormap

在IJulia工作。拼命想要制作自定义色彩图。 试过这条线:

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

导致以下错误

  

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

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

我不能使用导入涉及matplotlib(因为这在IJulia中无效)。 我注意到其他人在类似问题上有所帮助,但这并不能解决我的问题。

2 个答案:

答案 0 :(得分:3)

通过使用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

答案 1 :(得分:0)

您不需要使用PyCall直接调用Python(当然,这是一个选项)。您还可以使用PyPlot的{​​{1}}构造函数构建来自(r,g,b)数组的颜色映射或Julia ColorMap包中定义的颜色数组。请参阅PyPlot ColorMap documentation。例如:

Color