R语言 ggplot线的形状,改变长度不是整体大小

uyto3xhc  于 2023-04-03  发布在  其他
关注(0)|答案(1)|浏览(119)

我想比较一些数据,我有4个变量。
我正在寻找的是一种绘制“tumor_depth”的方法,该“tumor_depth”由轴上每个(platform,SV_count)位置的线的长度表示。

platform SV_count tumour_depth    patient
1 Nanopore       30     34.00000 17
2 Nanopore        4     23.00000 95
3 Illumina       88     72.90999 97
4 Nanopore       38     26.00000 20
5 Illumina       39     83.93676 82

我的绘图代码:

A %>%
  ggplot(aes(x=platform, y=SV_count, size=tumour_depth, group = patient)) +
    geom_point(shape="-", width=0.01) +
    scale_radius(range=c(0,50)) +
    theme_light()

然而,使用我上面的方法,当我使用它们时,线条变得更粗更长。而且,图例变得非常大。有没有更好的方法在我的图中使用线条作为标记形状,我可以控制线条的长度而不是整体大小?

2wnc66cl

2wnc66cl1#

一种选择是使用geom_segment。然而,总体而言,我建议将tumor_depthMap到x上,并通过platformMap面。这样做不需要图例,恕我直言,比较长度要容易得多。

library(ggplot2)

ggplot(A, aes(x = tumour_depth, y = SV_count, group = patient)) +
  geom_segment(aes(xend = 0, yend = SV_count), linewidth = 4) +
  facet_wrap(~platform) +
  theme_light()

数据

A <- structure(list(
  platform = c(
    "Nanopore", "Nanopore", "Illumina",
    "Nanopore", "Illumina"
  ), SV_count = c(30L, 4L, 88L, 38L, 39L),
  tumour_depth = c(34, 23, 72.90999, 26, 83.93676), patient = c(
    17L,
    95L, 97L, 20L, 82L
  )
), class = "data.frame", row.names = c(
  "1",
  "2", "3", "4", "5"
))

相关问题