SAS Proc SGPlot双图例配置问题:合并图例并调整位置
SAS Proc SGPlot 双图例底部紧凑配置方案
要实现两个图例在底部紧凑排列,同时保留height_group分组图例的原有样式,你可以通过两个独立的KEYLEGEND语句分别控制分组图例和椭圆图例,搭配位置、间距相关参数调整布局:
核心配置逻辑
- 给散点图、椭圆绘图语句分别指定
name=标识,用于绑定对应图例 - 用
LOCATION=BOTTOM强制两个图例都显示在底部 - 通过
position=left/right让两个图例分占底部左右区域,避免重叠 - 用
SPACING=缩小图例间的水平间距,INSETSPACING=优化图例内部元素间距 - 保留分组图例的原有标题、符号样式,仅调整布局参数
- 给散点图、椭圆绘图语句分别指定
修改后的示例代码
proc sgplot data=your_dataset; /* 散点图:保留原height_group分组样式,指定名称用于绑定图例 */ scatter x=x_col y=y_col / group=height_group name="group_legend" markerattrs=(size=8); /* 椭圆图:指定名称用于绑定图例 */ ellipse x=x_col y=y_col / group=height_group name="ellipse_legend" lineattrs=(thickness=2); /* 配置height_group分组图例,保持原有样式 */ keylegend "group_legend" / location=bottom position=left title="Height Group" /* 保留原图例标题 */ noborder insetspacing=2; /* 缩小内部标题与符号的间距 */ /* 配置椭圆图例,与分组图例紧凑排列 */ keylegend "ellipse_legend" / location=bottom position=right title="Confidence Ellipse" noborder spacing=5; /* 缩小两个图例之间的水平间距 */ run;
- 关键参数说明
name=:给绘图语句设置唯一标识,确保KEYLEGEND能精准绑定对应图例position=left/right:让两个图例在底部左右分布,避免挤占同一空间导致间距过大SPACING=:控制两个图例之间的横向距离,数值越小布局越紧凑INSETSPACING=:调整图例内部标题、符号、文本的间距,适配原有分组图例的样式
只要散点图的group=height_group参数与第一段代码一致,分组图例的符号、颜色等样式会自动继承原有配置。
内容的提问来源于stack exchange,提问作者Mizzle
相关产品推荐
相关产品推荐

