Хотя это не совсем то, что вы просили, это может быть толчок в правильном направлении.
Я не думаю, что одновременно можно использовать несколько цветовых шкал. Вы можете изменить цвет линий вокруг гексов и увеличить толщину линий.
Сначала приведем несколько примеров данных (пожалуйста, предоставьте это сами в будущем)
library(tidyverse)
library(hexbin)
set.seed(1)
data_for_scatter_plot <-
crossing(
tibble(Trial =seq(1:100)),
tibble(Extra = seq(1:10)),
tribble(
~Gene, ~Log2FoldChange, ~length, ~TT_frequency, ~Type,
"ENSG00000007968", 1.928153, 24791, 0.05623008, "up_regulated",
"ENSG00000009724", 2.209263, 20711, 0.05842306, "down_regulated",
"ENSG00000010219", 1.794972, 53099, 0.08250626, "other_genes",
"ENSG00000053438", 3.815411, 2479 , 0.10851150, "up_regulate")) %>%
mutate(
Log2FoldChange = Log2FoldChange*0.001*Trial+rnorm(n=n(), mean=0, sd = 0.1),
TT_frequency = TT_frequency-0.00001*Trial+rnorm(n=n(), mean=0, sd = 0.005)
)
data_for_scatter_plot
# A tibble: 4,000 x 7
Trial Extra Gene Log2FoldChange length TT_frequency Type
<int> <int> <chr> <dbl> <dbl> <dbl> <chr>
1 1 1 ENSG00000007968 -0.0607 24791 0.0505 up_regulated
2 1 1 ENSG00000009724 0.0206 20711 0.0622 down_regulated
3 1 1 ENSG00000010219 -0.0818 53099 0.0853 other_genes
4 1 1 ENSG00000053438 0.163 2479 0.102 up_regulate
5 1 2 ENSG00000007968 0.0349 24791 0.0461 up_regulated
6 1 2 ENSG00000009724 -0.0798 20711 0.0614 down_regulated
7 1 2 ENSG00000010219 0.0505 53099 0.0754 other_genes
8 1 2 ENSG00000053438 0.0776 2479 0.117 up_regulate
9 1 3 ENSG00000007968 0.0595 24791 0.0654 up_regulated
10 1 3 ENSG00000009724 -0.0283 20711 0.0653 down_regulated
# ... with 3,990 more rows
Теперь сюжет:
data_for_scatter_plot %>%
ggplot(aes(x=Log2FoldChange, y=TT_frequency, color=factor(Type)))+
geom_hex(size = 1)
Надеюсь, это поможет.
--- РЕДАКТИРОВАТЬ после комментария ---
Я думаю, что лучшим решением для вас является грань. Это также позволит вам различать перекрывающиеся группы
data_for_scatter_plot %>%
ggplot(aes(x=Log2FoldChange, y=TT_frequency, color=factor(Type)))+
geom_hex()+
facet_grid(cols = vars(factor(Type)))