2013-12-16 3 views
1

격자를 사용하여 매주 자동차 판매 xyplots를 색상으로 표시합니다. 현재 108 주간의 데이터가 있으며 매주이 데이터를 업데이트하려고하므로 다음 주에 109 주간의 데이터가 있습니다.R : 래티스를 사용하는 자동 축척 날짜 축

x 축 (날짜) 축을 적절히 포맷하는 데 문제가 있습니다. 이것에 관해 다른 SO 스레드에서 읽은 것 (예 : this)에서 아래 코드를 생각해 냈습니다. 날짜는 현재 %d-%b의 원하는 형식으로되어 있지만 지금은 매주 한 번씩 (모두 108 개) 표시됩니다.

원하는 동작은 날짜 형식 (%d-%b)을 지정하고 축을 차트에 놓으면 R이 차트의 크기와 데이터의 주 수에 따라 한 번에 표시 할 날짜 수를 결정할 수 있습니다. (내가 레이블을 필터링하고 I를 표시 할 얼마나 많은 지정할 수 이해하지만이되지 원하는 동작입니다.)

여기 내 코드입니다 :

library(lattice) 

salesData <- read.csv("http://s3.amazonaws.com/rk-misc/samples/sales.csv") 

# convert to date format 
salesData$week <- as.POSIXct(strptime(salesData$week,"%Y-%m-%d")) 

# plot 
xyplot(sales ~ week | carColor, data=salesData[order(salesData$week),], 
    type="l", 
    scales = list(
    x = list(
     at = salesData$week, 
     labels = format(salesData$week, "%d-%b") 
    ) 
), 
    xlab = "Date", 
    ylab = "Sales" 
) 

감사합니다!

xyplot(sales ~ week | carColor, data=salesData[order(salesData$week),], 
    type="l", 
    scales = list(
    x = list(
     format = "%d-%b" # Here's where you choose the format 
    ) 
), 
    xlab = "Date", 
    ylab = "Sales" 
) 

격자 플롯에 pretty 함수를 사용하면 POSIXct 클래스에 x 축 데이터를 변환하기 때문에

+2

이 코드는 재현 할 수 없습니다 ==별로 도움이되지 않습니다. – agstudy

+0

사과드립니다. 코드를 업데이트했습니다. –

답변

2

, 당신은 축 레이블의 형식을 지정합니다 scales 인수의 format 구성 요소를 사용할 수 있습니다 그릴 축 레이블을 결정하는 데 도움이됩니다. 따라서

format(pretty(salesData$week), "%d-%b") 

대부분의 경우 그려지는 레이블을 반환해야합니다. 래티스 (더 구체적으로 grid) 그래픽은 축 레이블의 잠재적 중첩 여부도 확인합니다. 레이블이 겹칠 수있는 경우 실제로는 pretty을 사용하면 실제로 그려지는 레이블에서 벗어날 수 있습니다.

+0

완벽하고 정확하게 내가 찾고있는 것이 었습니다. 고맙습니다! –