2012-03-09 103 views
3

任何人都可以從PROC SGPLOT(以及類似SGSCATTER的函數)獲取乾淨的PDF輸出提示嗎?從PDF中的PROC SGPLOT獲取矢量圖形輸出

當我使用ODS創建圖形並將其寫入PDF中時,結果在sas EG報告窗口中看起來很好,但PDF輸出被柵格化爲PDF的DPI設置,所以如果放大PDF,您可以做出像素化。此外,如果我沒有定義顏色/線條樣式,PDF中的輸出將使用不同的顏色和樣式(在sas報告窗口中實線的線條在PDF中變爲虛線)。

如果我使用PROC GPLOT製作相同的圖表,它帶有矢量化文本和線條,放大/打印時看起來不像垃圾。

是否有我需要更改的選項?我需要設置一些標誌?我試過像OPTIONS DEVICE=SVG這樣的東西,但它似乎不起作用。設定一個非常高的DPI也不是一個很好的解決方案。

代碼示例(但實際上,這種情況發生在所有SG的 * 功能與任何數據/代碼):在SAS EG結果窗口

options nonumber orientation=landscape; 
ods pdf file='FILENAME.pdf' notoc; 

proc sgplot data=shipped; 
    series x=date y=weighted_price/group=type; 
run; 

proc gplot data=shipped; 
    plot weighted_price*date=type; 

symbol1 c=blue  i=join v=none w=1 l=1; 
symbol2 c=red  i=join v=none w=1 l=1; 
symbol3 c=brown  i=join v=none w=1 l=1; 
run; ods pdf close; 

這些產生大致相當於圖(除SGPLOT看起來更好),但是當它們以pdf格式結尾時,SGPLOT被光柵化爲圖像並放到PDF頁面上,而GPLOT作爲可愛的矢量圖出現。

編輯:請參閱下面發佈的解決方案。我沒有發現它是有據可查的,但是SAS 9.2沒有很好的PDF支持。對於一次性圖表來說,有幾個解決方法是可行的,但最好的解決方案是升級到SAS 9.3。

回答

0

我終於解決了這個。有幾種方式可以完成這種工作,而且有一種方法確實可行。

「完美」的解決方案是升級到SAS 9.3; SAS 9.2不能將SGPLOT/SGPANEL圖表製作爲矢量PDF。在SAS 9.3中運行相同的代碼可以生成完美的圖表。

我發現了其他兩個部分的解決方案:

1:在企業指導,你可以調整顯示設置,如果你得到的一切權利,你可以打印SAS報告窗口,使用Adobe PDF打印機。這工作正常,雖然輸出有時看起來非常不平衡。

2:ods latex file='file.tex' gout='/.../';(將gout =設置爲您的輸出目錄)。這在unix 9.2中至少會產生一個垃圾TeX文件,它沒有換行符,似乎也沒有實際引用圖表。它還爲每個圖表生成一個PostScript文件!你可以使用這個.ps文件與Distiller(或TeX)來創建不錯的矢量圖。他們打印很好,雖然我發現SAS 9.3 PDF在屏幕上看起來比從這種方法的.ps好得多。

0

您可能可以通過使用Adobe打印驅動程序來提高質量。多年前,我在SAS網站上發現了這個例子,試圖解決一個不同的問題,但它也可能適用於您的問題。

options sysprint='Acrobat PDFWriter' 
     'k:\ruzsa\users\pdf\pdfwriter.pdf'; /* <- Edit to the location of your driver. */ 
goptions reset=all device=winprtc; 
+0

這可能會工作,但不幸的是我在UNIX上運行sas而沒有Adobe打印驅動程序。 – orh 2012-03-09 23:02:32

4

這裏是一個最小的例子(sgplot代碼來自SAS文檔):

ods graphics/imagefmt=pdf; 
ods pdf file = 'c:\temp\report.pdf'; 

proc sgplot data=sashelp.class; 
    scatter x=height y=weight; 
    ellipse x=height y=weight; 
run; 

ods pdf close; 

imagefmt=pdf片斷告訴SAS創建的pdf圖像本身, 代替加入的光柵化一個pdf報告的PNG。 這段代碼應該在c:\ temp目錄下生成一個名爲report.pdf的文件。 其中的圖像是可縮放的。

下面的鏈接還有很多。

Controlling the Image Name and Image Format

Using PROC SGPLOT for Quick High-Quality Graphs