2017-05-23 3 views
0

아래 코드를 사용하여 CO2 데이터 계열의 세 가지 플롯을 생성합니다. 음모 중 두 개는 좋아 보이고, 마지막 음절은 이상하게 보입니다. 나는 ggplot이이 음모로 어떻게 생길지 이해하지 못합니다. 어떤 아이디어?ggplot은 필터링 된 긴 형식 데이터에서 엉망진창을 그립니다.

Good plot

Good plot

A plot I don't understand

data = read.csv('data4.csv', header = TRUE, comment.char = '#') 
data = mutate(data, 
    time = as.character(time), 
    date = as.character(date), 
    timec = chron(times = time)) 

dataLong = melt(data, id.vars = c('date', 'time', 'timec')) 
dataLong = filter(dataLong, variable == 'co2') 

ggplot(data,  aes(x = timec, y = co2)) + geom_point() + scale_x_chron(format = '%H:%M:%S') 
plot(dataLong$timec, dataLong$value) 
ggplot(dataLong, aes(x = timec, y = value)) + geom_point() + scale_x_chron(format = '%H:%M:%S') 
+0

"어떤 아이디어?"라는 질문은 무엇입니까? 다른 데이터 형식 (데이터 및 데이터에서 가져온 것)을 사용하여 동일한 것을 플로팅하는 것을 달성하기를 원하십니까? 호기심이없는 – Llopis

+0

, 플롯 중 어느 시간에 정확한 시간이 있습니까? 상단 하나 또는 중간 하나? –

+0

문제를 설명하기 위해 최소한의 예를 게시했습니다. 플롯은 모두 똑같아 야합니다. 필자는 데이터를 긴 형식 데이터로 변환하여 facet_grid, facet_wrap 또는 aes (color = variable)를 사용하여 둘 이상의 변수를 그렸다. – schoettl

답변

0

문제가 있었다 : dataLongvalue 컬럼 character 클래스이다. 따라서 세 번째 플롯의 y 배율은 숫자 배율이 아니고 문자열 배율이며 어휘 순서 ('a' < 'b')로 정렬됩니다.

> class(dataLong$value) 
[1] "character" 

숫자 변환은 melt 함수에서 발생했습니다. 모든 변수가 숫자는 아닙니다. 그들 중 일부는 요인이었다. 결과는 성격이었습니다.

감사합니다 @ 리차드 텔 포드!