首页 文章

在Julia-lang生成热图的子图

提问于
浏览
2

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

我不清楚如何制作更多的单个数字 . 看完这个页面example subplots后如何使用布局,然后是example histogram,我似乎无法为两者共同制作工作实例 .

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

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

1 回答

  • 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 库 . "backend"是另一个由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 .

相关问题