如何在Julia的layout绘图中居中显示子图?
Julia Plots 布局:保持子图宽高的前提下实现居中
问题描述
运行以下代码绘制5个子图时,第4、5个子图会左对齐,无法居中显示:
using Plots plot(rand(100, 5), layout = 5)
实际输出效果:
需求:在不改变子图宽高的前提下,让第4、5个子图居中显示。
解决方案
可以通过Plots的自定义布局功能实现,以下两种方法均可满足需求:
方法1:使用@layout宏定义占位布局
通过@layout宏创建包含空白占位的布局,让第二行的子图处于中间位置:
using Plots # 定义布局:第一行3个连续子图,第二行左右留空、中间放置2个子图 custom_layout = @layout [a b c; _ d e _] plot(rand(100, 5), layout=custom_layout, size=(800, 400))
其中_代表空白占位区域,这样第二行的两个子图会自动居中,且每个子图的宽高与原布局保持一致。
方法2:指定网格布局的子图位置
创建2行3列的网格布局,手动指定每个数据系列对应的子图位置,预留第一列空白来实现居中:
using Plots # 2行3列的网格,将前3个数据放在第一行,后2个放在第二行的第2、3位 plot(rand(100, 5), layout=(2,3), subplot=[1,2,3,5,6], size=(800, 400))
通过subplot参数绑定数据与子图位置,第二行第1位留空后,第4、5个子图自然居中,且宽高不受影响。
内容的提问来源于stack exchange,提问作者Quinten
相关产品推荐
相关产品推荐

