在我的PDF输出上绘制“框”

在我的PDF输出上绘制“框”,pdf,sas,sas-ods,Pdf,Sas,Sas Ods,我正在为我的雇主编写一份公司级的总结报告。因为这是一个相当高级别的报告,我正在尝试对它进行一些修饰,我认为标准SAS输出异常丑陋。我已经设法使用ODS区域等来包含图形,但是我在生成一个相当基本的条形图时遇到了困难 我所要做的就是通过指定X、Y、W、H和背景色在PDF文件上绘制框。我已经接近使用了使用ODS区域的PROC GSLIDE 这没问题,但我遇到了很多麻烦的小问题。例如: GSLIDE appx 3点有一个最小高度和宽度,这使得在条形图上表示小数字非常困难 GSLIDE的角稍圆,在尝试覆盖

我正在为我的雇主编写一份公司级的总结报告。因为这是一个相当高级别的报告,我正在尝试对它进行一些修饰,我认为标准SAS输出异常丑陋。我已经设法使用ODS区域等来包含图形,但是我在生成一个相当基本的条形图时遇到了困难

我所要做的就是通过指定X、Y、W、H和背景色在PDF文件上绘制框。我已经接近使用了使用ODS区域的PROC GSLIDE

这没问题,但我遇到了很多麻烦的小问题。例如:

GSLIDE appx 3点有一个最小高度和宽度,这使得在条形图上表示小数字非常困难

GSLIDE的角稍圆,在尝试覆盖和堆叠它们时会产生奇怪的伪影

很明显,最大宽度约为480点。我想我可能可以用GOPTIONS VSIZE属性来解决这个问题,但我必须小心,因为如果ODS区域和GSLIDE的大小完全相同,那么SAS出于某种原因认为GSLIDE比区域大,并且无法正确渲染GSLIDE

我在互联网上搜索了一个更简单的方法,但似乎很少有SAS程序员尝试做我正在做的事情。我知道我正在通过SAS/GRAPH重新设计SAS提供商的条形图,但它们没有提供我需要的定制级别,无法以我想要的方式显示结果

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

这与这个问题没有直接关系,但既然已经提出了这个问题,下面是一个条形图的概念:

每一行测量的是一个较大人口中相互排斥的子部分的指标。灰色条表示要测量的总体大小。蓝色条测量度量值,报告的数字是整个小节的度量值。白色条表示总人口的大小。浅蓝色条是仅为好奇的人显示的另一种度量,它总是比蓝色条小。某些子部分不包含数据,因此显示为N/A

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


这正是我想要这个图表的样子。如果可以使用标准SAS图表,我很乐意使用它们,但我认为自己绘制图表更容易获得这种效果。

我找到了部分答案。。。您可以使用设置ODS区域的背景色。您仍然必须在区域内放置某些内容,以强制SAS渲染它,例如,ODS TEXT=;,但它至少消除了一个痛点:最小尺寸和最大尺寸


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

您有什么版本的SAS?ODS Graphics PROC SGPLOT、GTL等可能可以根据条形图做您需要的事情。我会先从那里开始——编辑或者用条形图问题开始一个新问题——然后看看我们从那里开始。我也许能帮上忙,因为我对条形图很在行,如果不行的话,communities.sas.com会得到图形开发人员的大力支持。@Joe-我尊重你的出身,但我以前也这么做过-我花了好几天的时间试图弄明白如何欺骗sas为我的报告生成一种非常具体的格式,最终只能满足我90-95%的需求。在这种情况下,条形图本身非常简单,我宁愿自己控制并呈现输出。我建议至少在社区上发布这个问题,即使你单独前进。Dan、Sanjay和Rob非常擅长在一两个小时内回答问题,并且几乎总是能够立即告诉您这是否可能,以及如何可能。@Joe-附带一个快照,以防您感兴趣。JDB-您有什么版本的SAS?如果你有9.3,或者可能是9.2,我想你可以用一个高-低的图表来做这件事,这个图表非常接近“滚动你自己的条形图”,但是更有条理。我想是ODS文本吧?无论如何,我会将单元格填充和/或边距视为圆边的罪魁祸首,或者尝试使用不同的图形驱动程序使用JPG、GIF或PNG,而不是您现在使用的任何图形驱动程序,以查看其处理方式是否不同,例如抗锯齿。圆角可能是由模板使用的样式表造成的。困难的部分将是找出样式表中的哪个样式实际上创建了舍入。