나는 심볼 모양과 심볼 채우기가 두 개의 다른 변수에 의해 설정되는 정렬의 산점도를 만들려고합니다. 내 데이터의 예는 다음과 같습니다.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())
언제나 감사드립니다.
감사합니다. 이 재현 가능한 예제를 시도해 보았고 색상이나 채우기로 작동합니다. 내 코드는 여전히 않습니다. 내가 깨뜨린 것을 해결하려고 노력 중이다. – Ensa
Gotcha. 내게서 뛰어 내리는 것은 당신이 할 필요가없는'aes'를 두 번 설정하는 것처럼 보입니다. 당신은 한 번만 모양 레이어'geom_jitter'를 얻었습니다. 그래서'gesplot()'함수 나'geom_jitter()'안에'aes'를 설정할 수 있습니다. – amanda