2017-11-10 15 views
0

나는 심볼 모양과 심볼 채우기가 두 개의 다른 변수에 의해 설정되는 정렬의 산점도를 만들려고합니다. 내 데이터의 예는 다음과 같습니다.ggplot2 pch 21 aes가 작동하지 않는 채우기

Sample Experiment Replicate EPS Time Group 
1 1 1 5 24 Wild-type 
2 1 3 4.5 24 Wild-type 
3 2 2 2 24 Wild-type 
4 1 2 6 24 Variant 
5 2 1 4 24 Variant 
6 1 2 3 48 Wild-type 
7 1 3 2.5 48 Wild-type 
8 2 3 3.5 48 Wild-type 
9 1 2 3.5 48 Variant 
10 2 2 6.5 48 Variant 
11 1 1 3 72 Wild-type 
12 2 3 3.5 72 Wild-type 
13 1 3 9.5 72 Variant 
14 2 3 12.5 72 Variant 

여기에 제가 사용하고있는 코드가 있습니다. 어떤 기호라도 입력하지 않으면 아무 문제가 없습니다.

fig.one<-read.table(file='data/Figure1.txt', header=TRUE) 

fig.one$time.cat[fig.one$Time == 24] <- 2.5 
fig.one$time.cat[fig.one$Time == 48] <- 6 
fig.one$time.cat[fig.one$Time == 72] <- 9.5 

fig.one$scat.adj[fig.one$Group=='Wild-type']<- -0.50 
fig.one$scat.adj[fig.one$Group=='Variant']<- 0.50 

my.pch<-c(21,24) 
my.bg<-c('black','white') 

ggplot(fig.one, aes(time.cat, EPS, shape=my.pch[Experiment]),fill=my.bg[factor(Group)]) + 
    geom_jitter(aes(time.cat + scat.adj,EPS), 
       position=position_jitter(width=0.2,height=0), 
       alpha=0.6, 
       size=3) + 
    scale_fill_identity() + 
    scale_shape_identity() + 
    scale_x_continuous("Time since inoculation (hours)", breaks=c(2.5,6,9.5),labels=c("24", "48", "72"), limits=c(1,11)) + 
    ylab("EPS (grams per litre)") + 
    theme(axis.text=element_text(size=12, face='bold'), 
     axis.title=element_text(size=14, face='bold'), 
     panel.grid.major = element_blank(), panel.grid.minor = element_blank()) 

언제나 감사드립니다.

답변

0

문제가되는 채우기 색상 인 경우 fill 대신 color을 사용해보세요. 여기에 재현 예는 다음과 같습니다

my.bg <- c('black','white', 'blue') 

ggplot(iris, aes(Sepal.Width, Petal.Length, color = my.bg[factor(Species)])) + 
    geom_jitter() + 
    scale_color_identity() 
+0

감사합니다. 이 재현 가능한 예제를 시도해 보았고 색상이나 채우기로 작동합니다. 내 코드는 여전히 않습니다. 내가 깨뜨린 것을 해결하려고 노력 중이다. – Ensa

+0

Gotcha. 내게서 뛰어 내리는 것은 당신이 할 필요가없는'aes'를 두 번 설정하는 것처럼 보입니다. 당신은 한 번만 모양 레이어'geom_jitter'를 얻었습니다. 그래서'gesplot()'함수 나'geom_jitter()'안에'aes'를 설정할 수 있습니다. – amanda

0

귀하의 채우기 인수() 함수 AES 외부에서 정의된다. 첫 번째 gplot line을

ggplot으로 다시 작성하십시오. 그림 + ...