服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - R语言 - linux命令行下使用R语言绘图实例讲解

linux命令行下使用R语言绘图实例讲解

2021-12-30 15:44solohac R语言

这篇文章主要介绍了linux命令行下使用R语言绘图实例讲解,文中实例讲解的很清晰,有需要的同学可以研究下

使用系统:centos 6.4 64bit

在R语言中可以使用png()等函数生成图片,例如: png("aa.png")可以生成图片。

但是如果你是通过shell远程连接到系统上,可能会碰到如下错误:

> png("aa.png")
错误于.External2(C_X11, paste("png::", filename, sep = ""), g$width,  : 
  无法打开PNG设备
此外: 警告信息:

In png("aa.png") : 无法打开链结到X11显示''

分析:

打开R控制台,输入capabilities(),可以看到:

?
1
2
3
4
5
> capabilities()
  jpeg   png   tiff  tcltk   X11   aqua http/ftp sockets
  FALSE  FALSE  FALSE  FALSE  FALSE  FALSE   TRUE   TRUE
 libxml   fifo  cledit  iconv   NLS profmem  cairo
  TRUE   TRUE   TRUE   TRUE   TRUE  FALSE  FALSE

可以看到png为false,因为生成图片需要X11,但是shell是没有X11的。

怎么解决:

1.在X11模式下执行R语言命令,也就是在linux的桌面。如果你只是在桌面上画画图,那选择这个方式就可以了。

2.不使用X11生成,使用 图形渲染库Cairo。比如我,需要用脚本,根据实时数据生成统计图,那么用这个方式就很方便。

安装:

启动R控制台

安装

?
1
install.packages("Cairo")

会让你选择安装镜像

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
--- 在此連線階段时请选用CRAN的鏡子 ---
CRAN mirror
 
 1: 0-Cloud            2: Argentina (La Plata)   
 3: Argentina (Mendoza)      4: Australia (Canberra)   
 5: Australia (Melbourne)     6: Austria         
 7: Belgium            8: Brazil (BA)       
 9: Brazil (PR)         10: Brazil (RJ)       
11: Brazil (SP 1)        12: Brazil (SP 2)      
13: Canada (BC)         14: Canada (NS)       
15: Canada (ON)         16: Canada (QC 1)      
17: Canada (QC 2)        18: Chile          
19: China (Beijing 1)      20: China (Beijing 2)
选一个北京的好了:20

安装出错

?
1
configure: error: Cannot find cairo.h! Please install cairo (http://www.cairographics.org/) and/or set CAIRO_CFLAGS/LIBS correspondingly.

所以我们需要先在系统中安装cairo库

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
yum -y install cairo* libxt*
安装完成之后,重新执行:install.packages("Cairo")
installing to /usr/local/lib64/R/library/Cairo/libs
** R
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (Cairo)
 
下载的程序包在
‘/tmp/RtmpNlGyf3/downloaded_packages'里
更新'.Library'里的HTML程序包列表
Making 'packages.html' ... 做完了。

安装成功。

加载Cairo后,查看支持:

?
1
2
3
4
5
6
7
> library(Cairo)
> Cairo.capabilities()
  png  jpeg  tiff  pdf  svg   ps  x11  win raster
 TRUE FALSE FALSE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE
说明已经支持用cairo生成图片了。
例如可以使用如下命令生成PNG:
CairoPNG(file="out.png",width=800,height=480)

附上一个测试小程序,主要为了说明用法:

?
1
2
3
4
5
6
#vim test.r
library(Cairo)
 
CairoPNG(file="out.png",width=800,height=480)
 
plot(5,4)

保存后执行:

?
1
2
3
4
5
6
7
8
9
[root@localhost ~]# Rscript test.r
 
R version 3.1.0 (2014-04-10) -- "Spring Dance"
Copyright (C) 2014 The R Foundation for Statistical Computing
Platform: x86_64-unknown-linux-gnu (64-bit)
> library(Cairo)
> CairoPNG(file="out.png",width=800,height=480)
> plot(5,4)
>

在当前目录下可以看到生成了图片

?
1
2
3
4
[root@localhost ~]# ll
总用量 84
-rw-r--r--. 1 root root 6832 5月 13 10:33 out.png
-rw-r--r--. 1 root root  71 5月 13 10:32 test.r

到此这篇关于linux命令行下使用R语言绘图实例讲解的文章就介绍到这了,更多相关linux命令行下使用R语言绘图内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/solohac/p/4154148.html

延伸 · 阅读

精彩推荐
  • R语言R语言gsub替换字符工具的具体使用

    R语言gsub替换字符工具的具体使用

    这篇文章主要介绍了R语言gsub替换字符工具的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友...

    lztttao10372021-12-24
  • R语言如何用R语言绘制散点图

    如何用R语言绘制散点图

    这篇文章主要介绍了如何用R语言绘制散点图,帮助大家更好的理解和学习使用R语言,感兴趣的朋友可以了解下...

    菜鸟教程13002021-12-23
  • R语言基于R/RStudio中安装包“无法与服务器建立连接”的解决方案

    基于R/RStudio中安装包“无法与服务器建立连接”的解决方案

    这篇文章主要介绍了基于R/RStudio中安装包“无法与服务器建立连接”的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    truffle52815052022-01-05
  • R语言R语言读取xls与xlsx格式文件过程

    R语言读取xls与xlsx格式文件过程

    这篇文章主要为大家介绍了使用R语言读取xls与xlsx格式文件的过程步骤,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪...

    Kanny广小隶11982022-01-20
  • R语言R语言中的vector(向量),array(数组)使用总结

    R语言中的vector(向量),array(数组)使用总结

    这篇文章主要介绍了R语言中的vector(向量),array(数组)使用总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要...

    A叶子叶来5772021-11-14
  • R语言R语言中qplot()函数的用法说明

    R语言中qplot()函数的用法说明

    这篇文章主要介绍了R语言中qplot()函数的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    Jack_丁明12752022-01-05
  • R语言R语言常量知识点总结

    R语言常量知识点总结

    在本篇文章里小编给大家整理了一篇关于R语言常量知识点总结内容,有兴趣的朋友们可以学习分享下。...

    R语言教程网12102021-12-29
  • R语言R语言实现支持向量机SVM应用案例

    R语言实现支持向量机SVM应用案例

    本文主要介绍了R语言实现支持向量机SVM应用案例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    一天_pika5222022-01-18