2014-05-22 1 views
1

저는 두 개의 data.frames의 선형 그래프 플롯에 ggplot2 라이브러리를 사용하고 있습니다. 아래에 data.frames와 함수를 넣습니다. 문제는 X 축과 Y 축 모두에서 조약 주위의 값 범위가 나타나지 않고 4 분의 1 값만 나타납니다. X 축 값의 경우 power_value 열 데이터 인 DF_N_EPC_AND_FOUND_EPC의 값을 사용하고 있습니다. 다른 하나는 상수 값을 얻기 위해 data.frame을 사용하고 있습니다. X 축과 Y 축 모두의 전체 범위를보고 싶습니다. 어떻게해야하는지 잘 모르겠습니다. 도와 줄수있으세요?데이터 프레임의 값을 ggplot2로 만든 플롯의 축 값으로 사용합니다.

내 기능 :

LINER_GRAPH_POWER_LIST_VALUES<-function(DF_N_EPC_AND_FOUND_EPC, DF_READ_EXTERNAL_LIST_EPC_TAGS){ 
    require(reshape2) 
    df.m <- melt(DF_N_EPC_AND_FOUND_EPC, id=c("power_value"), measure=c("total_epc","found_epc"), variable.name="epc") 
    require(ggplot2) 
    ggplot(df.m, aes(x=power_value, y=value, color=epc)) + 
    geom_line() + 
    geom_point() + 
    geom_hline(yintercept=nrow(DF_READ_EXTERNAL_LIST_EPC_TAGS), color="green") 
} 

DF_N_EPC_AND_FOUND_EPC의 data.frame :

power_value total_epc found_epc 
1   31.0  11   5 
2   30.5  12   5 
3   30.0  11   5 
4   29.5  11   5 
5   29.0  10   5 
6   28.5  11   5 
7   28.0  11   5 
8   27.5  10   4 
9   27.0  10   4 
10  26.5  10   4 
11  26.0  10   4 
12  25.5  10   3 
13  25.0   9   3 

DF_READ_EXTERNAL_LIST_EPC_TAGS data.frame :

TAGS_IDE 
1 00000000000000000000A288 
2 000000000000000CCC002001 
3 00000000000000000000A194 
4 00000000000000000000A284 
5 00000000000000000000A332 
6 00000000000000000000A002 
7 00000000000000000000A262 
8 00000000000000000000A261 

enter image description here

+0

당신이 부분을 "조약 주변 값의 범위를 설명 할 수 없습니다 : 값은 뭔가 같은 것 때문에 변경할 수 data.frame에서 온 표시되지 않습니다, 4 값 중 1 개만 "더 좋습니까? 내가 보는 것에서 모든 값이 그려집니다. – Jaap

+0

죄송합니다 축의 레이블을 의미합니다. 모든 값을보고 싶습니다. 즉 그래프의 경우 "25, 25.5, 26, 26.5 31 ...."뿐입니다. 26, 28 및 30뿐만 아니라 – Alex

답변

2

, 당신의 x-axis에 원하는 모든 레이블을 추가하여 ggplot 기능 어린 아이 다음 줄을 추가하려면 다음과 같이

scale_x_continuous(breaks = c(..add the desired breaks here..)) 

:

ggplot(df.m, aes(x = power_value, y = value, color = epc)) + 
    geom_line() + 
    geom_point() + 
    scale_x_continuous(breaks = c(25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,30.5,31.0)) + 
    geom_hline(yintercept = nrow(DF_READ_EXTERNAL_LIST_EPC_TAGS), color = "green") 

제공 :

enter image description here

를 구현 귀하의 기능 :

LINER_GRAPH_POWER_LIST_VALUES <- function(DF_N_EPC_AND_FOUND_EPC, DF_READ_EXTERNAL_LIST_EPC_TAGS){ 
    require(reshape2) 
    df.m <- melt(DF_N_EPC_AND_FOUND_EPC, id = c("power_value"), measure = c("total_epc","found_epc"), variable.name = "epc") 
    require(ggplot2) 
    ggplot(df.m, aes(x = power_value, y = value, color = epc)) + 
    geom_line() + 
    geom_point() + 
    scale_x_continuous(breaks = c(df.m$power_value)) + 
    geom_hline(yintercept = nrow(DF_READ_EXTERNAL_LIST_EPC_TAGS), color="green") 
} 

y-axis의 경우에도 마찬가지입니다. scale_y_continuous과 동일한 작업을 수행 할 수 있습니다.

0

거의 완벽하게 :) 감사합니다. 작은 세부 사항 만있었습니다.

LINER_GRAPH_POWER_LIST_VALUES<-function(DF_N_EPC_AND_FOUND_EPC, DF_READ_EXTERNAL_LIST_EPC_TAGS){ 
    require(reshape2) 
    df.m <- melt(DF_N_EPC_AND_FOUND_EPC, id=c("power_value"), measure=c("total_epc","found_epc"), variable.name="epc") 
    require(ggplot2) 
    ggplot(df.m, aes(x=power_value, y=value, color=epc)) + 
    geom_line() + 
    geom_point() + 
    scale_x_continuous(breaks=c(DF_N_EPC_AND_FOUND_EPC$power_value)) + 
    geom_hline(yintercept=nrow(DF_READ_EXTERNAL_LIST_EPC_TAGS), color="green") 
} 

가 대단히 감사합니다 :)

+1

포함 할 대답을 편집했습니다. 작은 세부 사항. – Jaap

관련 문제