2017-11-17 40 views
0

와 I가 다음 dataframe :라운드 눈금 동적 ggplot2

:

p_rEx<- ggplot (data=rExp, aes(x=samples, y=value)) + scale_x_discrete(limits=samples) 
p_rEx<- p_rEx + geom_bar (aes(fill = variable),stat = "identity", position = "dodge", colour='black') 
p_rEx<- p_rEx + labs(y="relative expression", x='') 
p_rEx<- p_rEx + guides(fill=guide_legend(title=NULL)) 
p_rEx<- p_rEx + scale_fill_manual(values=gray.colors(3, start = 0.3, end = 0.9, gamma = 2.2, alpha = NULL)) 
p_rEx 

결과는 다음과 플롯이다 : 나는 다음과 같은 코드를 사용하여 그룹화 된 바 플롯을 만들

rExp <- read.table(text='  samples variable value 
UT   F201/203 0.00255836649706595 
siCTL   F201/203 0.00911222024608249 
siF201/203 F201/203 0.00473993831657716 
UT   F203  0.0108815320248598 
siCTL   F203  0.0224404694390467 
siF201/203 F203  0.0115692755110973 
UT   F203/206 0.00392331892967821 
siCTL   F203/206 0.010474094476624 
siF201/203 F203/206 0.00494613385979193', header=TRUE) 

enter image description here

내 문제는 눈금 표시가 이상한 이상한 숫자. 나는 그 (것)들을 더 "둥글게"하고 싶습니다. 0.01 대신 0.010474094476624

y 축은 10 ~ 1 * 10^-10 사이의 값을 가질 수 있으므로 연속으로 유지해야합니다.

나는 + scale_y_continuous(breaks= pretty_breaks()) 뭔가를 시도했지만 나에게 오류 (Error: Discrete value supplied to continuous scale)

이 문제를 해결하는 방법이 있나요했다? 감사합니다.

편집 : 여기 How do I change the number of decimal places on axis labels in ggplot2?

, 나는 동적 버전을 요청하는 모든 y 값에 대해 작동합니다 내가이이 질문의 중복 생각하지 않습니다. 소수점을 동적으로 조정하십시오.

+0

중복으로 표시된 질문에서 제공된 해결 방법은 적용 할 수 없습니다. –

+2

위의 샘플 데이터와 동일한 플롯을 얻지 못합니다. 이게 옳은 거니? 값 열이 숫자가 아닌 요소 일 경우 클래스와 유사합니다. [재현 가능한 예제] (https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)가 실제로 재현 가능한지 확인하십시오. – MrFlick

+0

Thanks @MrFlick. 나는 호기심이 많은 것으로 나타났습니다. 제가 데이터를 입력 할 때 여기에 게시하면 9 번째 자리로 반올림되는 것 같습니다. 이것은 원래 데이터에서 발생하지 않았습니다. (rExp DF를 인쇄 할 때 표시되는 숫자보다 더 많은 숫자를 표시 할 수 있습니다. 사실, 원래 데이터의 값은 요인으로 보입니다. 숫자로 변경하면 틱 마크가 더 예뻐요. 그러나 데이터를 약간 둥글게합니다 .... –

답변

1

숫자가 아니라 변수 변수가 임박한 것처럼 보입니다. 따라서 문제는 ggplot이 아니라 데이터 가져 오기와 관련이 있습니다. 그러나

ggplot(data=rExp, aes(x=samples, y=as.numeric(as.character(value)))) 
+0

감사합니다. 너. 나는 당신이 당신의 코멘트를 게시하고 문제를 해결 한 후에 이것을 이미 구현했다. 건배 메이트! –