날짜 - 값 쌍으로 가득 찬 파일이 있습니다. 나는 월별로 포인트를 비우고 박스 앤드 위커 플롯을 표시하려고합니다. 제 문제는 제가 여러 달 동안의 데이터를 가지고 있다는 것입니다. 그래서 x 축 레이블 중 일부만을으로 표시하고 싶습니다.x 축에 모든 휴지통을 표시하지 않고 날짜를 지정하십시오.
내 코드는 다음과 같습니다 : 여기
library(ggplot2)
library(reshape2)
library(scales)
data <- read.delim("values.tsv", header=TRUE)
# Interpret the strings as dates
data$Date <- as.Date(data$Date, "%Y-%m-%d %H:%M:%S %z")
# Bin the data by month
data$Date <- cut(data$Date, breaks="1 month")
ggplot(data, aes(factor(Date), Temperature)) +
geom_boxplot()
ggsave("output.pdf", width=8, height=6, units="in")
적절한 형식의 일부 샘플 데이터입니다 :
Date Temperature
2016-09-29 07:16:00 -0500 295.0
2016-09-30 07:23:00 -0500 295.0
2016-10-03 10:27:00 -0500 297.8
2016-10-04 07:27:00 -0500 296.2
2016-10-26 05:52:00 -0500 294.2
2016-10-27 06:18:00 -0500 294.2
2016-10-28 07:41:00 -0500 294.2
2016-11-27 09:07:00 -0500 293.6
2016-11-30 08:03:00 -0500 295.0
2016-12-01 08:12:00 -0500 295.0
2016-12-02 08:01:00 -0500 293.2
2016-12-07 08:02:00 -0500 294.6
2016-12-08 07:50:00 -0500 294.6
2016-12-09 08:37:00 -0500 293.2
2016-12-12 08:25:00 -0500 294.4
2016-12-13 07:47:00 -0500 293.2
2016-12-14 07:52:00 -0500 294.6
2017-01-09 07:53:00 -0500 294.0
2017-01-10 08:26:00 -0500 294.4
2017-01-11 08:20:00 -0500 294.6
2017-01-31 08:16:00 -0500 290.6
2017-02-07 07:59:00 -0500 290.8
2017-02-08 08:10:00 -0500 290.6
2017-02-09 08:33:00 -0500 291.2
2017-02-10 07:57:00 -0500 290.4
2017-02-13 07:48:00 -0500 290.4
2017-02-28 08:19:00 -0500 291.8
실제 데이터는 사십개월에 걸쳐 수백 개의 데이터 포인트로 구성되어 있습니다. 데이터가 제대로 비닝되고있다하지만
scale_x_date(date_breaks="4 months", date_labels="%b '%y")
를 통해 규모를 추가하려고 할 때 cut
다른-문자열 뭔가 입력 날짜 변환 것으로 보인다 오류
Error: Invalid input: date_trans works with objects of class Date only
을 얻을, 나는 가정합니다. scale_x_date
을 적용 할 수 있도록 x 축 값을 날짜로 다시 변환하려면 어떻게해야합니까?
플롯 앞에 '날짜'클래스를 확인 했습니까? 그러나 날짜라고해도 'aes (factor (Date)'를 호출하면 ggplot 호출에서 요소로 다시 변환되므로 scale_x_date가 작동하지 않는다고 생각합니다.) – lbusett
@LorenzoBusetto 예,'cut' 호출을 생략하면 나중에 scale_x_date를 성공적으로 사용할 수 있습니다. 즉,'Date'에 실제로 날짜가 포함되었다고 가정한다고 가정합니다. – bdesham