R笔记:导出高清图片

有很多的统计结果是用统计图来呈现的,如何将R中获得的统计图保存起来使用是做统计时避不开的问题。简单粗暴的方法是截屏,但截屏的分辨率常常达不到要求。为保证高分辨率的输出,可考虑本文的几种方法:(1)导出;(2)打印;(3)程序包。

我们在《R笔记:二分类资料的logistic回归》一文中生成了ROC图,用于评估因变量二分类的logistic回归模型的拟合优度。

data(SAheart,package="bestglm") #载入数据

lgrfit1<-glm(chd~age+typea+famhist+tobacco+alcohol+sbp+ldl+adiposity,family=binomial(link=logit),data=SAheart) #建立模型lgrfit1

lgrfit2<-glm(chd~age+typea+famhist+tobacco+ldl,family=binomial(link=logit),data=SAheart) #建立模型lgrfit2

library(pROC)

roc(SAheart$chd,fitted(lgrfit1),plot=TRUE,col="red") #绘制模型lgrfit1的ROC曲线

plot.roc(roc(SAheart$chd,fitted(lgrfit2)),add=TRUE,col="blue") #在同一副图中绘制模型lgrfit2的ROC曲线

下面我们看下如何将生成的图片保存成图片格式。
首先单击选中生成的ROC图,然后依次选择文件>>另存为,然后保存成自己需要的格式即可。
如果你电脑中有pdf打印机,也可以利用文件>>打印,选择相应的pdf打印机,如果是AdebePDF打印机,可以点开[属性]按钮,在[AdebePDF设置]选项卡中将默认设置“Standard”改为“高质量打印”,确定返回可获得高清的pdf文档。
以上方法操作简便,不足是图片的形状随着显示形状的变化而变化,长宽不能精确。如果你想获得固定大小的图片,可考虑使用程序包grDevices中的函数jpeg()png()bmp()tiff()生成相应的格式的图片,这些函数首先按设置参数生成一个画图设备,然后在设备里添加相应的图片。

jpeg(filename="picname.jpg",width=480,height=480,units="px",pointsize=12,quality=75,bg="white",res=NA,family="",restoreConsole=TRUE,type=c("windows","cairo"),antialias,symbolfamily="default")

以生成png和jpeg格式图片示例如下:

setwd("D:/Temp") #设置工作目录为:D:/Temp,不设置生成的图片会保存在默认路径内。也可选中控制台,通过[文件>>改变工作目录…]来设置

png(filename = "ROC.jpg",width =800, height =800) #生成名称为ROC的png格式的图片,长宽都是800像素。px(像素,默认值)、in(英寸)、cm 或 mm,绘制文本的默认点大小(1/72 英寸),默认像素密度72ppi

roc(SAheart$chd,fitted(lgrfit1),plot=TRUE,col="red")#绘制模型lgrfit1的ROC曲线

dev.off() #关闭当前设备

然后你就可以在默认的工作目录里找到图片ROC了:
jpeg(filename = "ROC2.jpg",width =18, height =18, units = "cm", pointsize =10,res =600)  #生成名称为ROC2的jepg格式的图片,长宽都是18里面,文本字号10,密度每厘米600点

roc(SAheart$chd,fitted(lgrfit1),plot=TRUE,col="red")

plot.roc(roc(SAheart$chd,fitted(lgrfit2)),add=TRUE,col="blue")

dev.off()

结果如下:

如果你采用的是R的图形用户界面,比如RStudio,这种问题也容易解决,过程与结果如下:

(0)

相关推荐