1

我正在为我的雇主编写一份公司级别的总结报告。因为这是一个相当高级的报告,所以我试图将它“漂亮”一点(我认为标准的 SAS 输出非常难看)。我已经设法使用 ODS REGION 等包含图形,但我无法生成一个相当基本的条形图。

我要做的就是通过指定 X、Y 和 W、H 以及背景颜色在 PDF 文件上绘制框。我已经接近使用这篇 SUGI 论文(它使用带有 PROC GSLIDE 的 ODS REGION)。

这工作正常,但我遇到了许多令人烦恼的小问题。例如:

  • GSLIDE 有一个最小高度和宽度(大约 3 点),这使得在我的条形图上表示小数字变得非常困难

  • GSLIDE 的边角略微圆润,在尝试叠加和堆叠时会产生奇怪的“伪影”

  • 显然有一个“最大”宽度(大约 480 点)。我想我可以用 GOPTIONS VSIZE 属性解决这个问题,但我必须小心,因为如果 ODS REGION 和 GSLIDE 的大小完全相同,那么 SAS(出于某种原因)认为 GSLIDE大于REGION并且无法正确渲染 GSLIDE。

我在互联网上搜索了一种更简单的方法,但似乎很少有 SAS 程序员试图做我正在做的事情。我知道我正在通过 SAS/GRAPH 在 SAS 提供程序条形图中重新发明轮子,但它们没有提供我需要的自定义级别,以按照我想要的方式显示结果。

如何在 PDF 文件上绘制一个简单的矩形,具有漂亮的方角,并且没有奇怪的宽度/高度限制?


这与问题没有直接关系,但由于它已经提出,这里有一个条形图是什么样子的想法:

在此处输入图像描述

每行衡量一个跨较大人口的相互排斥子部分的指标。灰色条表示被测量人口的总规模。蓝色条衡量指标(报告的数字是子部分的指标)。“白条”是总人口的大小。(浅蓝色条是只为好奇的人显示的替代指标 - 它总是小于蓝色条。)一些子部分不包含数据,因此它们显示为“N/A”。

还有一个滚动总数。因此,在报告一个或几个子部分后,它们将被滚动到滚动总数中。灰色背景将相关子部分分组,滚动总数报告在底部。

这几乎正​​是我想要这张图表的样子。如果可以使用标准 SAS 图表来完成,我很乐意使用它们 - 但我认为通过自己绘制图表更容易获得这种效果。

4

1 回答 1

0

我找到了部分答案...您可以使用通过 PROC TEMPLATE 定义的 LayoutRegion来设置 ODS REGION 的背景颜色。您仍然必须在该区域内“放置一些东西”以强制 SAS 呈现它(例如,ODS TEXT = " ";),但它至少消除了一个痛点:最小和最大尺寸。

不幸的是,角落仍然是圆形的,但如果我能找到一种通过属性或其他东西解决这个问题的方法,我会更新这个答案。

于 2014-02-10T17:34:21.713 回答