7

FeaturePlot is a function in Seurat package.

And in the vignette it is written that if we specify parameter do.return = TRUE it should return ggplot2 object. It is not working. My goal here is just to change the title of the plot. In case of violin plot I can do the following:

VlnPlot(object = seurat_object, features.plot = id, do.return = TRUE) + labs(title = endothelial_symbols[1])

But with FeaturePlot similar code fails to work:

FeaturePlot(object = seurat_object, features.plot = id, cols.use = c("grey", "blue"),
                          reduction.use = "tsne", do.return = TRUE) + labs(title = endothelial_symbols[1])

Giving the error:

Error in FeaturePlot(object = seurat_object, features.plot = id, cols.use = c("grey", : non-numeric argument to binary operator

Any suggestions would be greatly appreciated.

llrs
  • 4,693
  • 1
  • 18
  • 42
Nikita Vlasenko
  • 2,558
  • 3
  • 26
  • 38

1 Answers1

3

I tried with some data that I have and this is working for me:

p <- FeaturePlot(object = seurat_object, features.plot = id, cols.use = c("grey", "blue"),
                      reduction.use = "tsne", do.return = TRUE)


lapply(p, function(x){x + labs(title = endothelial_symbols[1])})

I think it is because FeaturePlot returns several ggplot objects according to the ids you put. This is returned as a list of plots so you have to iterate each one for labeling.

plat
  • 1,032
  • 5
  • 15