CentOS6.5下实现R绘图

时间:2023-03-08 17:43:33

1、首先安装R的绘图包Cairo

下载地址:http://www.rforge.net/Cairo/files/

[root@Hadoop-NN-01 mysofts]# R CMD INSTALL Cairo_1.5-9.tar.gz

2、检查

> library(Cairo)        # 加载Cairo包
> Cairo.capabilities() # 检查Cairo包支持的图片格式 png jpeg tiff pdf svg ps x11 win raster
TRUE TRUE FALSE TRUE TRUE TRUE TRUE FALSE TRUE

兼容性的检查Cairo支持的图形输出格式:

支持:png、jpeg、pdf、svg、ps、x11(Linux桌面)、raster

不支持:tiff、win(windows桌面)

注:如果是Windows系统,则x11为FALSE, win为TRUE。

3、实例

> x<-rnorm(100)  # 随机取100个点坐标
> y<-rnorm(100)
> png(file="pic_plot.png", width=640, height=480) # png函数
> plot(x, y, col="#ff0000", pch=19, cex=2, main="plot")
> dev.off()

结果如下图:

CentOS6.5下实现R绘图

4、可能遇到的错误:

1)no png support in this version of R

你R软件不支持png格式的图片,用capabilities()函数打印一下,你的环境支持的图片格式。

错误原因:不详,一般重装就能解决问题。

2)unable to open connection to X11 display

错误原因:未安装安装X11绘图设备。

如何安装?

在本地(我本地是XP)安装一个叫Xmanager的软件。它的主要功能就是接受从服务器上传回的绘图指令,然后再在本地安装这个指令画图。

它实际上监听了一个端口,这个端口(11号端口?)就是跟绘图相关的。所以现在本地运行Xmanager后,再在SSH上R中绘图,就可以了!命令capabilities(),我们也可以看到X11变成TRUE。

下载地址:http://www.xp510.com/xiazai/Networking/mstsc/14456.html

使用方法:

A、打开软件

CentOS6.5下实现R绘图

报错:

CentOS6.5下实现R绘图

错误原因:X11 forwarding依赖“xorg-x11-xauth”软件包,所以必须先安装“xorg-x11-xauth”软件包。

[root@Hadoop-NN-01 ~]# yum install xorg-x11-xauth

报错:“No such file or directory”的错误。

CentOS6.5下实现R绘图

错误原因:你的linux主机没有安装xterm,请安装:

[root@Hadoop-NN-01 ~]# yum install –y xterm

B、连接成功

CentOS6.5下实现R绘图

C、连接shell

特别注意:一定要勾选x11通道之类的选项。每个shell客户端都不一样,但是都有这样的选项。

进入shell界面检查:

[root@Hadoop-NN-01 ~]# echo $DISPLAY

如果什么都没有输出,请设置一下:

[root@Hadoop-NN-01 ~]# export DISPLAY=localhost:10.0        #10.0为localhost的端口。

D、然后进入R

>capabilities()

可以看到x11已经变成TRUE了

然后再执行一遍3实例。

3)semi-transparency is not supported on this device

记得加载Cairo包:

>library(Cairo)    #加载图形渲染库

Ubuntu系统报错原因:是由于机器时缺少某些X11相关的库,请更新r-base-dev以前安装它所需的所有库。

[root@Hadoop-NN-01 ~]# sudo apt-get build-dep r-base-dev        #在线安装,适用于ubuntu系统