2016-10-22 42 views
2

ggplot2を使用して時系列データをプロットする必要があるプロジェクトを行っています。ggplot2を使用して時系列データをプロットする

eur

これは私が今何をやったかである:これは私が使用していたデータセットである

library(ggplot2) 
library(lubridate) 
eur$Date <- as.Date(eur$Date) 
ggplot(eur, aes(Date, EUR)) + geom_line() 

plot

そして、私はこの非常に奇妙なプロットを得ました。誰かが問題を解決するのに役立つことができますか?

+0

下記参照as.Date(FOO)

に変換し、あなたのデータフレーム 'eur'のいくつかのデータを共有してください。 – Jan

+0

eurのスクリーンショットをアップロードしました。クリックすることができます。 –

+0

あなたの 'EUR'列のようなものが要因です。 'Date'はクラス' Date'であり、 'EUR'は' numeric'であり因子ではないことを 'str(eur)'で確認してください。 – hvollmeier

答えて

0

データを拡大縮小する必要があります。あなたは、データが好きなものについてあなたの説明を詳しく説明できますか?この書式設定は役に立ちます。 formatscale_x_dateには引数がないので、私は、動作しません

library(ggplot2) 
library(lubridate) 
ggplot(aes(Date, EUR)) + geom_line() + 
scale_x_date(format = "%b-%Y") + xlab("") + ylab("") 
+1

データは毎日の通貨レートです。私はちょうどあなたのコードを試しましたが、Rは私にこのエラーを示しました:ggplot2はクラスunevalのデータを扱う方法を知らない "。 –

0

@NiranjaのGdの答えかかわらず、データをよりよく理解する必要があります。 - あなたのデータは、クラスの時系列(TS)であるならば、あなたはggfortifyのautoplot機能を使用することができますし、それはの世話をする

df$Date <- as.Date(df$Date) 

library(ggplot2) 

ggplot(df, aes(Date, EUR)) + geom_line() + 
    scale_x_date(date_labels = "%d-%b") 
+0

Thx!私はコードを試しましたが、私は同じ問題を持つプロットを得ました。私はあなたのコードはうまくいくはずだと思うが、システムにいくつかの問題があるか、コードに他の問題があるかどうかはわからない。 –

2

enter image description here

編集:

次のアプローチは、仕事をする必要がありますあなたのための変換。

library(ggfortify) 
library (ggplot2) 
ggfortify::autoplot(df) 

データがtimeseriesでない場合、日付列は因子または文字である可能性があります。

それが文字であれば、それが要因であれば、

#create the data 
data <- data.frame(
i = c(6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L), 
Date = c("2000-01-03", "2000-01-04", "2000-01-05", "2000-01-06", 
"2000-01-07", "2000-01-10", "2000-01-11", "2000-01-12", 
"2000-01-13", "2000-01-14", "2000-01-18", "2000-01-19"), 
EUR = c(1.0155, 1.0309, 1.0335, 1.0324, 1.0294, 1.0252, 1.0322, 
1.0281, 1.027, 1.0128, 1.0121, 1.0115) 
) 

#check the data 
str(data) 

# convert date column to Date as it is currently a **factor** 
data$Date <- as.Date(as.character(data$Date)) 

#basic plot 
library(ggplot2) 
ggplot(data,aes(Date, EUR)) + geom_line() + geom_point() 

## plot can be tidied up further using lubridate/scales packages 

#sessionInfo() 
# R version 3.4.0 (2017-04-21) 
# Platform: x86_64-w64-mingw32/x64 (64-bit) 
# Running under: Windows 7 x64 (build 7601) Service Pack 1 
# 
# Matrix products: default 
# 
# locale: 
# [1] LC_COLLATE=English_United Kingdom.1252 LC_CTYPE=English_United Kingdom.1252 
# [3] LC_MONETARY=English_United Kingdom.1252 LC_NUMERIC=C       
# [5] LC_TIME=English_United Kingdom.1252  
# 
# attached base packages: 
# [1] stats  graphics grDevices utils  datasets methods base  
# 
# other attached packages: 
# [1] ggplot2_2.2.1 
# 
# loaded via a namespace (and not attached): 
# [1] labeling_0.3  colorspace_1.3-2 scales_0.4.1  compiler_3.4.0 lazyeval_0.2.0 
# [6] plyr_1.8.4  tools_3.4.0  gtable_0.2.0  tibble_1.3.3  Rcpp_0.12.11  
# [11] grid_3.4.0  rlang_0.1.1  munsell_0.4.3 
# > 
関連する問題