2017-01-31 2 views
1

얼마 전에 다른 값을 가진 여러 라인을 포함하는 그래프를 수행했습니다. 결과는 y 축의 값이 섹션 od 값으로 표시된이 이미지입니다. http://imgur.com/a/aLRUC 잠시 후 정확한 코드를 사용했지만 테이블의 일부 값을 약간 변경하면 출력이 연속 Y 축이있는이 이미지가됩니다. http://imgur.com/v6DLB09R : 하나의 그래프에서 Y 축상의 여러 라인의 다른 값

두 경우 모두 정확히 동일한 코드를 사용했지만 다른 출력을 두 번 받았습니다. 년을 통해 값의 편차를 더 잘 표시하기 위해 y 축이 섹션으로 표시되는 첫 번째 출력을 얻고 싶습니다. 아무도 나에게 그 방법을 제안 할 수 있습니까?

table <- read.csv("results.csv", header=TRUE) 
mtbl <- melt(table, id.vars="Acquisition_time", measure.vars = c("Land", "Sea", "Lagoon", "River")) 

#draw a graph 
ggplot(data=mtbl, aes(x= Acquisition_time, y=value, group=variable, colour=variable)) + 
    geom_line() + 
    geom_point(size=4, shape=21, fill="white") + 
    scale_x_continuous(name="Years", breaks = mtbl$Acquisition_time) 
: 내가 사용하고 데이터는 내 연구 지역

Sensor Acquisition_time Land Sea Lagoon River 
Landsat_4 1992    72.79 19.05 7.56 0.60 
Landsat_5 1984    72.96 19.17 7.02 0.85 
Landsat_5 1988    72.82 19.41 7.09 0.68 
Landsat_5 1996    73.46 19.27 6.71 0.56 
Landsat_5 2000    72.72 19.23 7.43 0.62 
Landsat_5 2004    72.48 19.05 7.78 0.69 
Landsat_5 2008    72.67 19.14 7.49 0.70 
Landsat_8 2013    72.66 19.10 7.49 0.75 
Landsat_8 2016    72.81 19.03 7.38 0.78 

그리고 내가 사용하는 코드에서 토지 이용의 비율을 나타내는 값으로 6 열이있는 *의 .CSV 테이블입니다

y 축에서 불연속 값을 얻으려면 무엇을 추가해야합니까?

답변

1

이 값은 첫 번째 예에서는 요소 값이고 두 번째 예에서는 연속 값입니다. 여기에 재현 예입니다

Acquisition_time <- c(1992,1984,1988,1996,2000,2004,2008,2013,2016) 
Land <- c(72.79,72.96,72.82,73.46,72.72,72.48,72.67,72.66,72.81) 
Sea <- c(19.05,19.17,19.41,19.27,19.23,19.05,19.14,19.10,19.03) 
Lagoon <- c(7.56,7.02,7.09,6.71,7.43,7.78,7.49,7.49,7.38) 
River <- c(0.60,0.85,0.68,0.56,0.62,0.69,0.70,0.75,0.78) 

table <- data.frame(Acquisition_time, Land, Sea, Lagoon, River) 

library(tidyr) 
library(dplyr) 
library(ggplot2) 

mtbl <- table %>% gather(variable, value, -Acquisition_time) 

mtblfac <- mtbl %>% mutate(value = factor(value)) 

# with value as numeric 
ggplot(data=mtbl, aes(x= Acquisition_time, y=value, group=variable, colour=variable)) + 
    geom_line() + 
    geom_point(size=4, shape=21, fill="white") + 
    scale_x_continuous(name="Years") 

# with value as factor 
ggplot(data=mtblfac, aes(x= Acquisition_time, y=value, group=variable, colour=variable)) + 
    geom_line() + 
    geom_point(size=4, shape=21, fill="white") + 
    scale_x_continuous(name="Years") 

하지만 난 당신이 값 사이의 관계를 유지하기 때문에 그들이 범주하지 않고,면 다음과 같은 예와 같이 연속 값을 사용하도록 조언한다. 그러나 scales="free" 옵션을 사용하면 첫 번째 예와 마찬가지로 차이점을 구분할 수 있습니다.

# with value as numeric and facets 
ggplot(data=mtbl, aes(x= Acquisition_time, y=value, group=variable, colour=variable)) + 
    geom_line() + 
    geom_point(size=4, shape=21, fill="white") + 
    scale_x_continuous(name="Years") + 
    facet_grid(variable~., scales="free") 

enter image description here

+1

의견을 보내 주셔서 감사합니다 상세한 설명을 많이. 패싯을 사용할 가능성을 알지 못했지만 완벽하게 작동합니다! –