2012-02-07 20 views
3

x軸に沿って月データを含むデータをプロットしようとしています。残念ながら、その月は小数として現れています。何か案は?Rプロットの小数点として表示される日付

library(zoo) # Requires the zoo library. 
theMonths <- as.yearmon(c("Mar 2011", "Apr 2011", "May 2011", "Jun 2011", "Jul 2011", "Aug 2011", "Sep 2011", "Oct 2011", "Nov 2011", "Dec 2011", "Jan 2012", "Feb 2012")) 
x <- c(1:12) 
plot(theMonths,x,axes=FALSE) 
axis(1,theMonths) 
# Why do the dates appear on the axis as decimals? 

答えて

1

あなたはyearmonクラスオブジェクトが構成されているかを見れば:あなたは、これらの小数の値を格納していることがわかります、とas.numericへの呼び出しが与える

dput(theMonths) 
structure(c(2011.16666666667, 2011.25, 2011.33333333333, 2011.41666666667, 
2011.5, 2011.58333333333, 2011.66666666667, 2011.75, 2011.83333333333, 
2011.91666666667, 2012, 2012.08333333333), class = "yearmon") 

[1] 2011.167 2011.250 2011.333 2011.417 2011.500 2011.583 2011.667 2011.750 2011.833 
[10] 2011.917 2012.000 2012.083 

axisを見ると、2番目の引数はatであり、それはあなたのものです呼ばれる。 labelsを指定しない場合は、数値としてatの値を使用する必要があります。あなたも指定した場合、問題が解決されたラベル:

axis(1,theMonths,theMonths) 
3

axis.yearmonには、開発版のzooで修正されたバグがあります。これを試してみてください:

library(zoo) 
source("http://r-forge.r-project.org/scm/viewvc.php/*checkout*/pkg/zoo/R/yearmon.R?revision=916&root=zoo") 
z <- zooreg(1:12, as.yearmon("2011-03"), freq = 12) 
plot(z, cex = .8) 

を追加しました:この質問が答えたので、動物園の1.7から7は、CRANに登場しており、開発版が不要になったので、それは、上記の機能を備えていません。

output of sample plot.zoo using yearmon index class

+0

彼が 'むしろaxis.yearmon' – James

+0

@James'よりaxis'を呼び出していることが表示されます:あなたはyearmon分類対象と 'axis'呼び出すと、それが派遣します'axis.yearmon' ....それはRの方法です –

+0

@DWinそれは一般的にどのように動作するのか理解していますが、' axis(1、theMonths) 'を 'zoo :::と比較すると、 axis.yearmon(1、theMonths) ' – James

関連する問題