2016-11-04 24 views
-2

私は100タイムスタンプポイントのデータセットを持っています。チャートをプロットすると、横軸はすべての時点を示しているので、すべての時点が重なり合っています。どのようにそれらのすべてを表示するのではなく、水平軸上のいくつかの定期的な時点を示すには? R ggplot水平軸の間隔を広げる方法

EU 
 
       T_DCEP DCEP 
 
1 05/02/2016 1:28 1.14596 
 
2 05/02/2016 1:39 1.14684 
 
3 05/02/2016 2:04 1.14488 
 
4 05/02/2016 3:15 1.14820 
 
5 05/02/2016 3:34 1.14750 
 
6 05/02/2016 4:40 1.14915 
 
7 05/02/2016 4:56 1.14849 
 
8 05/02/2016 5:22 1.14913 
 
9 05/02/2016 5:55 1.14761 
 
10 05/02/2016 6:07 1.14821 
 
. ...    ..

マイコード:

ggplot(EU,aes(T_DCEP,DCEP, group = 1)) + geom_line()+geom_point() 
問題

enter image description here

+0

あなたは他を助けることができるように、いくつかのサンプルデータを表示することもできます。たとえば、 'dput(head(EU)) 'の出力のようにsthを表示することができます。 – mt1022

+0

'factor'問題があるかもしれません。 'class(EU $ T_DCEP)'をチェックしてください。ファクタまたは文字クラスの場合は、あなたが説明するように印刷されます。日付クラスに変換すると、よりきれいに印刷されます。 –

+0

あなたはEU $ T_DCEPのクラスを変換する必要があります、ありがとう! –

答えて

0

変数のclassをプロットします。有効な日時クラスに変換して問題を解決してください。

#Example data 
set.seed(451) 
dates <- seq(Sys.time()-99, Sys.time(), length.out=100) 
df <- data.frame(x=dates, y=rnorm(100)) 
head(df) 
#      x   y 
# 1 2016-11-04 09:49:09 -0.9431540 
# 2 2016-11-04 09:49:10 0.7257408 
# 3 2016-11-04 09:49:11 2.5257787 
# 4 2016-11-04 09:49:12 1.1916054 
# 5 2016-11-04 09:49:13 3.1091791 
# 6 2016-11-04 09:49:14 0.2848636 

class(df$x) 
[1] "POSIXct" "POSIXt" 

この例は、適切な日時クラスであるため正しくプロットされます。

ggplot(df, aes(x, y, group=1)) + geom_point() + geom_line() 

enter image description here

しかし、私は、適切な日時クラスを持っていなかった場合、それはあなたの例のようになります。

df$x <- as.character(dates) 
ggplot(df, aes(x, y, group=1)) + geom_point() + geom_line() 

enter image description here

関連する問題