Skip to content

Commit 8c0d59a

Browse files
committed
fix plotting of multiple factors
1 parent 4cf91b0 commit 8c0d59a

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

R/scatter_chart_class.R

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -202,18 +202,19 @@ setMethod(f="chart_plot",
202202
}
203203

204204
# build the plot
205-
A <- data.frame (group=groups,x=x, y=y,slabels=slabels)
205+
A <- data.frame (group=groups,x=x, y=y,slabels=slabels,shape=shapes)
206206

207207
out = ggplot()
208208

209209
# add invisible sample points for ellipse
210210
out = out+geom_point(data=A,aes_string(x='x',y='y'),alpha=0,show.legend=FALSE)
211211

212212
if (length(shapes)>1) {
213-
out=out+geom_point(data=A, aes_(x=~x,y=~y,colour=~group,shape=~shapes))
213+
out=out+geom_point(data=A, aes_(x=~x,y=~y,colour=~group,shape=~shape))
214214
} else {
215-
out=out+geom_point(data=A, aes_(x=~x,y=~y,colour=~group),shape=shapes)
215+
out=out+geom_point(data=A, aes_(x=~x,y=~y,colour=~group),shape=shapes)
216216
}
217+
217218
out=out+
218219

219220
geom_point(na.rm=TRUE) +
@@ -227,16 +228,23 @@ setMethod(f="chart_plot",
227228
}
228229

229230
if (obj$ellipse %in% c('all','group')) {
230-
out = out +stat_ellipse(data=A, aes_(x=~x,y=~y,colour=~group),type=obj$ellipse_type,
231+
if (is.factor(groups)) {
232+
out = out +stat_ellipse(data=A, aes_(x=~x,y=~y,colour=~group,group=~group),type=obj$ellipse_type,
231233
level=obj$ellipse_confidence) # ellipse for individual groups
234+
} else {
235+
if (is.factor(shapes)) {
236+
out = out +stat_ellipse(data=A, aes_(x=~x,y=~y,group=~shape),color="#C0C0C0",type=obj$ellipse_type,
237+
level=obj$ellipse_confidence) # ellipse for individual groups
238+
}
239+
}
232240
}
233241

234242
if (is(groups,'factor')) { # if a factor then plot by group using the colours from pmp package
235243
out=out+scale_colour_manual(values=plotClass$manual_colors,
236244
name=obj$factor_name[[1]])
237-
}else {# assume continuous and use the default colour gradient
245+
} else {# assume continuous and use the default colour gradient
238246
out=out+scale_colour_viridis_c(limits=quantile(groups,
239-
c(0.05,0.95),na.rm = TRUE),oob=squish,name=obj$factor_name[[1]])
247+
c(0.05,0.95),na.rm = TRUE),oob=scales::squish,name=obj$factor_name[[1]])
240248
}
241249
out=out+theme_Publication(base_size = 12)
242250
# add ellipse for all samples (ignoring group)

0 commit comments

Comments
 (0)