SAS使用sgplot绘制散点图时如何直接修改坐标轴标签名称
当然可以直接在SGPLOT过程步中修改坐标轴标签,不需要提前对数据集变量重命名,刚好可以避开变量名含特殊字符、空格导致的重命名失败问题。
你可以直接在xaxis和yaxis语句中通过label参数指定自定义标签,标签内容包含空格、š/č等特殊字符时,用英文双引号包裹即可,示例代码如下:
/* 以绘制m_pv31(头胎产犊年龄)和m_pv10(肌肉度)的散点图为例 */ proc sgplot data=datam_copy; scatter x=m_pv31 y=m_pv10; xaxis label="Age of first calving"; /* 也可写斯洛文尼亚语标签"Starost ob prvi telitvi" */ yaxis label="Omišičenost"; run;
如果需要批量绘制不同性状的散点图,还可以通过宏变量提前定义所有编码和标签的对应关系,避免每次画图重复写标签,提升效率:
/* 第一步:预定义所有变量的标签映射 */ %let label_m_pv10 = Omišičenost; %let label_m_pv31 = Starost ob prvi telitvi; %let label_m_pv12 = Vime; /* 后续新增性状直接按这个格式加宏变量即可 */ /* 画图时直接调用对应宏变量 */ proc sgplot data=datam_copy; scatter x=m_pv31 y=m_pv12; xaxis label="&label_m_pv31"; yaxis label="&label_m_pv12"; run;
补充说明下你之前重命名失败的问题也有解决方案:只要先开启options validvarname=any;允许SAS变量名包含特殊字符,重命名时新变量名用'变量名'n的格式即可,不过相比修改数据集结构,直接在SGPLOT中设置标签的方案更灵活,不会改动原始数据,更推荐使用。
内容的提问来源于stack exchange,提问作者Urban
相关产品推荐
相关产品推荐

