在Julia-lang生成热图的子图

时间:2017-09-21 04:08:46

标签: matplotlib julia heatmap

我正在尝试使用多个热图(根据单元格值的颜色着色矩阵)生成图形/图形。目前using Plots; pyplot()heatmap(mat)足以生成热图。

我不清楚如何制作更多的单个数字。在查看此页面example subplots以了解如何使用布局,然后查看example histogram之后,我似乎无法为两者共同制作工作示例。

问题是如何通过热图或其他一些函数生成一个显示两个不同矩阵的图形来做同样的事情?

(作为一个额外的方面,您是否还可以解释使用'声明的背景以及它与后端'的关系?)

1 个答案:

答案 0 :(得分:3)

最简单的方法是制作一张Vector of heatmaps,然后绘制那些

using Plots
hms = [heatmap(randn(10,10)) for i in 1:16];
plot(hms..., layout = (4,4), colorbar = false)

using语句调用Plots库。 “后端”是另一个由Plots加载的包,可以进行实际的绘图。绘图本身没有绘图功能 - 它将绘图调用转换为后端包的绘图调用。

上述代码说明: 使用Plots绘制是一个两步的过程。 1:plot生成一个Plot对象,其中包含该图的所有信息; 2:当一个Plot对象返回到控制台时,它会自动调用julia的display函数,然后生成该图。但您可以先使用Plot对象执行其他操作,例如将其放入数组中。

heatmap调用是plot(randn(10,10), seriestype = :heatmap)的简短形式,因此它只是创建一个Plot对象。 16绘图对象存储在向量中。

将多个Plot对象传递给plot会创建一个新的更大的Plot,每个传入的Plot个对象都是子图。 splat运算符...只是将Array{Plot}的每个元素作为单个参数传递给plot