使用单独的数据点和单独的标签创建箱线图

问题描述 投票:0回答:1

我正在尝试创建一个带有单独数据点和单独标签的简单箱线图。使用数据点创建箱线图没有问题,但我似乎无法以任何清晰准确的方式将各个标签连接到数据点。

我尝试将标签添加到基本箱线图中:

tiff(file = "mir.tif", height = 800, width = 500, units ="px")
boxplot(mirna ~ group, data = mirnas_sub, xlab = "Classification",
   ylab = "RPM", main = "mirna", boxwex = .7, col = "white") #, ylim = c(0,25000))
stripchart(mirna ~ group,
           data = mirnas_sub,
           method = "jitter",
           jitter = 0.5,
           pch = 20,
           col = "black",
           vertical = TRUE,
           add = TRUE)
with(mirnas_sub, text(group, mirna, labels = dog, pos = 4, offset = 0.5))
dev.off()

这样,所有标签都只是沿着箱线图的中间延伸,并没有真正连接到它们的数据点(除了位于 y 轴上的正确位置之外)。我必须将点和标签分散得相当宽以避免重叠,但标签只是留在图的中间。

我也尝试过ggplot2。

tiff(file = "mir_labels.tif", height = 1000, width = 600, units = "px")
ggplot(mirnas_sub, aes(x = group, y = mirna, color = group)) +
  geom_boxplot() +
  geom_point(position = position_jitter(width = 0.2)) +
  geom_text(aes(label = dog), position = position_jitter(width = 0.2), vjust = -0.5)
dev.off()

在这里,数据点和标签也没有真正连接,很难看出哪个标签应该代表哪个数据点。我还尝试创建一个仅包含标签且没有点的箱线图,但即使如此,标签也会重叠,而且更难准确。当我尝试使用“check_overlap = TRUE”时,一些重叠的数据点被简单地从图中删除,而不是使数据点彼此分散。

我应该怎样做才能创建包含各个数据点和标签的清晰准确的箱线图?

r rstudio boxplot
1个回答
0
投票

试试这个

mirnas_sub$group <- as.factor(mirnas_sub$group)
mirnas_sub$group_jit <- jitter(as.numeric(mirnas_sub$group))

# tiff(file="mir.tif", height=800, width=500, units ="px")
boxplot(mirna ~ group, data=mirnas_sub, xlab="Classification", 
        ylab="RPM", main="mirna", boxwex=.7, col="white") #, ylim=c(0, 25000))
with(mirnas_sub, points(group_jit, mirna, pch=20, col=group) )#, ylim=c(0, 25000))

with(mirnas_sub, text(group_jit, mirna, labels=dog, pos=4, offset=0.5))
# dev.off()

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.