在 ggcyto 图上设置 x-limits 似乎不起作用

setting x-limits on ggcyto plot doesn't seem to do the trick

我试图在 ggcyto(ggplot2) 图上设置 x 限制,但它似乎不起作用。我设置的 x 限制一直向右挤压,并且有很多空 space。不知道还能尝试什么。我尝试设置 biexp 比例,但它看起来一样。

library(ggcyto)
library(ggplot2)
library(flowCore)

fs <- read.flowSet(fcs_files, path=(dir_path))


ggcyto(fs[[2]],
              aes(x = "FSC-A", 
              y = "SSC-A")  
              ) + 
  geom_hex(bins = 26) +
  xlab("") +
  ylab("") +
  theme(
    strip.text = element_text(size = 5),
  ) +
  scale_x_continuous(breaks = c(0, 18000), labels = function(x) formatC(x, format="e", digits =1), limits=c(0, 20000))) #+
  #scale_x_flowjo_biexp(maxValue = 20000, widthBasis = -10)  

添加 limits=c(0, 20000) 给我这个警告:Warning message: Removed 14 rows containing non-finite values (stat_binhex).

没有您的数据,因此无法重现奇怪的轴。我会检查您的数据是否有负值。此外,ggcyto 包装器对您的限制有一些限制。

使用下面的示例数据,我将第一列“FSC”上的 2 个值设置为 -999,我得到了类似的错误:

library(ggcyto)
data(GvHD)
da = GvHD[[1]]
exprs(da)[1:2,1] = -999 
    
ggcyto(da, aes(x = `FSC-H`, y =  `SSC-H`)) +
geom_hex(bins = 50) +
scale_x_continuous(breaks =c(0,800),limits = c(0,2000))

错误:

Warning message: Removed 2 rows containing non-finite values (stat_binhex).

如果我删除具有负值的条目并使用 ggplot2 而不是 ggcyto,它会起作用

da = da[rowMeans(exprs(da[,1:2])>0) == 1,]

ggplot(da,aes(x = `FSC-H`, y =  `SSC-H`)) + 
geom_hex(bins=50) + 
scale_x_continuous(breaks =c(0,800),limits=c(0,1200))+
scale_fill_distiller(palette = "Spectral")

在您的示例中,您可以尝试类似的操作:

da = fs[[2]]
da = da[rowMeans(exprs(da[,c("FSC-A","SSC-A")])>0) == 1,]

ggplot(da,aes(x = `FSC-A`,y = `SSC-A`)) + 
geom_hex(bins = 26) +
scale_x_continuous(breaks = c(0, 18000),limits=c(0, 20000)))