2017-11-22 16 views
0

현재 R에서 하루의 여러 데이터 세트를 플로팅하고 있습니다. 데이터 세트의 날짜 형식은 yyyymmmdddhh입니다. 음모를 꾸미면 서식이 영광스럽게 실패합니다. x 축에 2016060125, 2016060150 등이 있으며 매우 이상하게 모양이 나타납니다. "보통"날짜 표기법 (예 : 6 월 1 일, 12:00 또는 12:00 만)이있는 그림을 만들려면 어떻게해야합니까?X 축 플롯에 이상한 날짜/시간 형식

편집 :이 데이터 세트의 날짜는 정수 데이터 집합은 다음과 같습니다

같습니다

> event_1 
     date P ETpot  Q T  fXS GRM_SintJorisweg 
1 2016060112 0.0 0.151 0.00652 19.6 0.00477   0.39250 
2 2016060113 0.0 0.134 0.00673 20.8 0.00492   0.38175 
3 2016060114 0.0 0.199 0.00709 22.6 0.00492   0.36375 
4 2016060115 0.0 0.201 0.00765 21.2 0.00492   0.36850 
5 2016060116 19.4 0.005 0.00786 19.5 0.00492   0.36900 
6 2016060117 2.8 0.005 0.00824 18.1 0.00492   0.36625 
7 2016060118 2.6 0.017 0.00984 18.0 0.00508   0.35975 
8 2016060119 9.7 0.000 0.01333 16.7 0.00555   0.34750 
9 2016060120 7.0 0.000 0.01564 16.8 0.00524   0.33550 
10 2016060121 4.1 0.000 0.01859 17.1 0.00524   0.32000 
11 2016060122 9.5 0.000 0.02239 17.2 0.00539   0.30250 
12 201606.6 0.000 0.03330 17.5 0.00555   0.27050 
13 2016060200 11.6 0.000 0.03997 17.4 0.00555   0.23800 
14 2016060201 0.9 0.000 0.04928 17.3 0.00555   0.21725 
15 2016060202 0.0 0.000 0.05822 17.2 0.00555   0.20350 
16 2016060203 2.3 0.002 0.06547 16.4 0.00555   0.18575 
17 2016060204 0.0 0.016 0.07047 16.5 0.00555   0.16950 
18 2016060205 0.0 0.027 0.07506 16.7 0.00555   0.16475 
19 2016060206 0.0 0.070 0.07762 18.0 0.00555   0.16525 
20 2016060207 0.0 0.285 0.08006 19.5 0.00555   0.14500 
21 2016060208 0.0 0.224 0.08109 20.3 0.00555   0.15875 
22 2016060209 0.0 0.362 0.07850 21.3 0.00555   0.17825 
23 2016060210 0.0 0.433 0.07441 22.0 0.00524   0.19175 
24 2016060211 0.0 0.417 0.07380 23.9 0.00492   0.19050 

내가 y 축

에서 x 축에 날짜와 Q를 플롯 할
+0

2016060125, 2016060150? 년 = 2016, 월 = 06, 일 = 1, 시간은 25와 50입니까? 지난 번에 하루에 24 시간 만 검사 했으므로 시간은 00-23 또는 01-24 사이에서 실행되어야합니다. –

+0

글쎄, 이상한 것은 내 하루가 데이터 세트에서 24 시간을 가졌지 만 내 플롯의 x 축에서만이 방법을 얻는다는 것입니다 ... – Maaike300694

+0

'df $ datetime <- strptime (df $ datetime, " % Y % m % d % H ")'먼저, 날짜를 형식화 한 다음 그 값을 플롯 할 수 있습니다. 정확한 답변을 얻으려면 [최소, 재현 가능한 예] (https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)를 입력하십시오. – Masoud

답변

0

는 데이터와 최소한의 검증 예를 만듭니다

그래서
date_int <- c(2016060112,2016060113,2016060114,2016060115,2016060116,2016060117,2016060118,2016060119,2016060120,2016060121,2016060122,2016060123,2016060200,2016060201,2016060202,2016060203,2016060204,2016060205,2016060206,2016060207,2016060208,2016060209,2016060210,2016060211) 
Q <- c(0.00652,0.00673,0.00709,0.00765,0.00786,0.00824,0.00984,0.01333,0.01564,0.01859,0.02239,0.0333,0.03997,0.04928,0.05822,0.06547,0.07047,0.07506,0.07762,0.08006,0.08109,0.0785,0.07441,0.0738) 
df <- data.frame(date_int, Q) 

, 이제 우리는이 dataframe '안양'는 dataframe '안양'당신이 시간과 날짜 형식으로 date_int 열을 변환하고 업데이트 할 수 있습니다 dataframe와

: 마지막으로

date_time <- strptime(df$date_int, format = '%Y%m%d%H', tz= "UTC") 
df$date_int <- date_time 

,

plot(df) 

당신은 볼 것이다 좋은 줄거리! 다음과 같은 :

result plot

시 : 당신은 "R의 날짜 및 시간"에 지정한 약어를 사용할 필요가 있습니다 (예를 들어,이 경우 "%의 Y %의 m % d 개 %의 H")

참고 : https://www.stat.berkeley.edu/~s133/dates.html

0
여기

lubridate 답 :

library(lubridate) 
event_1$date <- ymd_h(event_1$date) 

또는 기본 R :

event_1$date <- as.POSIXct(event_1$date, format = "%Y%d%d%H") 
0

날짜는 숫자 클래스로 해석됩니다. 표시된대로 변환해야합니다. 형식이 올바른 얻으려면, 당신은 좀 더 수행해야합니다

set.seed(123) 
library(lubridate) 
##  date 
x <- ymd_h(2016060112) 
y <- ymd_h(2016060223) 

dfx <- data.frame(
    date = as.numeric(format(seq(x, y, 3600), "%Y%m%d%H")), 
    yvar = rnorm(36)) 


dfx$date_x <- ymd_h(dfx$date) 


# plot 1 
plot(dfx$date, dfx$yvar) 

xaxis numeric

지금 POSIXct 인 date_x 사용 :

#plot 2 
# converted to POSIXct 
class(dfx$date_x) 
## [1] "POSIXct" "POSIXt" 
plot(dfx$date_x, dfx$yvar) 

x-axis is date

당신은 수정해야합니다 원하는 형식을 얻으려면 날짜 축 :

#plot 3 
# using axis.POSIXct to help things 

with(dfx, plot(date_x, yvar, xaxt="n")) 
r <- round(range(dfx$date_x), "hours") 
    axis.POSIXct(1, at = seq(r[1], r[2], by = "hour"), format = "%b-%d %H:%M") 

enter image description here