本文介绍了为什么 R xts 图只显示 nc=2 的单列?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在一台机器上,plot.xts 在两列中正确显示数据:

On one machine, plot.xts correctly displays data in two columns:

另一方面,事情看起来非常不同:

On another, things look very different:

两者的代码是一样的:

library(zoo)
library(xts)
library(xtsExtra)
sessionInfo()
timezone = "UTC"
Sys.setenv(TZ=timezone)
sampleData = "Time (UTC),CPU,Runqueue,Blocked,MemoryFree,PageIns,ContextSwitches,Wait,Steal
2014-10-15 16:12:11,20,0,0,12222172,0,2549,0,0
2014-10-15 16:12:12,27,1,0,12220732,0,3619,0,0
2014-10-15 16:12:13,30,0,0,12220212,0,2316,0,0"
data = as.xts(read.zoo(text=sampleData, format="%Y-%m-%d %H:%M:%S", header=TRUE, sep=",", tz=timezone))
plot.xts(data, main="Title", minor.ticks=FALSE, yax.loc="left", auto.grid=TRUE, nc=2)

成功机器的输出:

> library(zoo)

Attaching package: ‘zoo’

The following objects are masked from ‘package:base’:

    as.Date, as.Date.numeric

> library(xts)
> library(xtsExtra)

Attaching package: ‘xtsExtra’

The following object is masked from ‘package:xts’:

    plot.xts

> sessionInfo()
R version 3.1.2 (2014-10-31)
Platform: x86_64-redhat-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] xtsExtra_0.0-1 xts_0.9-7      zoo_1.7-11    

loaded via a namespace (and not attached):
[1] grid_3.1.2      lattice_0.20-29
... The rest are just commands, no warnings/errors...

故障机器的输出:

> library(zoo)

Attaching package: 'zoo'

The following objects are masked from 'package:base':

    as.Date, as.Date.numeric

> library(xts)
> library(xtsExtra)

Attaching package: 'xtsExtra'

The following object is masked from 'package:xts':

    plot.xts

> sessionInfo()
R version 3.1.2 (2014-10-31)
Platform: x86_64-redhat-linux-gnu (64-bit)

locale:
[1] C

attached base packages:
[1] stats     graphics  grDevices utils     datasets    methods   base     

other attached packages:
[1] xtsExtra_0.0-1 xts_0.9-7      zoo_1.7-11    

loaded via a namespace (and not attached):
    [1] grid_3.1.2      lattice_0.20-29
... The rest are just commands, no warnings/errors...

成功的机器是本地的,失败的机器是远程的,export DISPLAY=${IP}:0 到成功的机器.

The successful machine is local and the failing machine is remote with export DISPLAY=${IP}:0 to the successful machine.

为什么 R xts 图只显示 nc=2 的单列?

Why does R xts plot only show a single column with nc=2?

推荐答案

正如 https://stackoverflow.com/a 中提到的 bergant/28571442/1293660,这是xtsExtra的一个bug.经过二分查找,修订版#850 是最新版本:

As bergant mentioned in https://stackoverflow.com/a/28571442/1293660, this is a bug in xtsExtra. After a binary search, revision #850 is the latest version that works:

$ svn checkout --revision 850 svn://svn.r-forge.r-project.org/svnroot/xts/
$ R
> install.packages("xts/pkg/xts", repos=NULL, type="source")
> install.packages("xts/pkg/xtsExtra", repos=NULL, type="source")

这篇关于为什么 R xts 图只显示 nc=2 的单列?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-20 22:25